Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ПОМОГИТЕ!!!! [D7, WinXP]


medvedenator ©   (2006-01-17 11:08:00) 

Кто знает, как в делфи узнать имя текущего пользователя, но не через функцию GetUserName????


han_malign   (2006-01-17 11:25:00) [1]

LsaEnumerateLogonSessions
   LogonType - Interactive,RemoteInteractive,CachedInteractive

или по процессам
function GetUserNameFromService(hProcess : THandle; var DomainName : string): string;
var
Token: THandle;
User: PSIDAndAttributes;
dwSize, dwNameSize,
dwDomainSize, dwUse: DWORD;
begin
  Result := '';
  if hProcess <> 0 then begin
    if OpenProcessToken(hProcess, TOKEN_QUERY, Token) then begin
       User := nil; dwSize := 0;
       if not GetTokenInformation(Token, TokenUser, User,
          dwSize, dwSize) and (GetLastError = ERROR_INSUFFICIENT_BUFFER)
       then begin
          GetMem(User, dwSize);
          if GetTokenInformation(Token, TokenUser, User,dwSize, dwSize) then begin
             dwNameSize   := 0;
             dwDomainSize := 0;
             if not LookupAccountSid(nil, User.Sid, nil, dwNameSize, nil, dwDomainSize, dwUse) and
                (GetLastError = ERROR_INSUFFICIENT_BUFFER)
             then begin
                SetLength(Result, dwNameSize);
                SetLength(DomainName, dwDomainSize);
                if not LookupAccountSid(nil, User.Sid, pointer(Result), dwNameSize, pointer(DomainName), dwDomainSize, dwUse)
                then begin
                    Result:='';
                    DomainName:='';
                end;
             end;
          end;
          FreeMem(User);
       end;
       CloseHandle(Token);
    end;
  end;
end;

а "текущих" сеансов Windows может быть много, особенно в сети


TUser   (2006-01-17 11:22:00) [2]

GetUserName


medvedenator   (2006-01-17 11:12:00) [3]

Имя пользователя текущего сеанса WINDOWS


Ega23   (2006-01-17 11:09:00) [4]

Текущего пользователя чего?


Наверх

Титульная страница Поиск, карта сайта Написать письмо