Текущий архив: 2006.02.12;
Скачать: CL | DM;
ВнизПОМОГИТЕ!!!! Найти похожие ветки
← →
medvedenator © (2006-01-17 11:08) [0]Кто знает, как в делфи узнать имя текущего пользователя, но не через функцию GetUserName????
← →
Ega23 © (2006-01-17 11:09) [1]Текущего пользователя чего?
← →
medvedenator © (2006-01-17 11:12) [2]Имя пользователя текущего сеанса WINDOWS
← →
TUser © (2006-01-17 11:22) [3]GetUserName
← →
han_malign © (2006-01-17 11:25) [4]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 может быть много, особенно в сети
Страницы: 1 вся ветка
Текущий архив: 2006.02.12;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.045 c