Показать сообщение отдельно
  #9  
Старый 19.11.2012, 10:13
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

GetUserName
ConvertSidToStringSid
все написано. так честнее будет:
Код:
function ConvertSidToStringSid(Sid: PSID; var StringSid: LPTSTR): Boolean;
  stdcall; external 'Advapi32.dll' name 'ConvertSidToStringSidA';

function StringSid: String;
var
  UserName: array [0..$ff] of Char;
  UserNameLen: Cardinal;
  cbSid: DWORD;
  cbReferencedDomainName: DWORD;
  peUse: SID_NAME_USE;
  Sid: PSID;
  ReferencedDomainName: LPTSTR;
  sSid: PChar;
begin
  Result:='';
  UserNameLen:=Length(UserName);
  GetUserName(@UserName[0], UserNameLen);
  cbSid:=0;
  cbReferencedDomainName:=0;
  LookupAccountName(nil,
    @UserName[0],
    nil, cbSid,
    nil, cbReferencedDomainName,
    peUse);
  Sid:=GetMemory(cbSid);
  ReferencedDomainName:=GetMemory(cbReferencedDomainName);
  LookupAccountName(nil,
    @UserName[0],
    Sid, cbSid,
    ReferencedDomainName, cbReferencedDomainName,
    peUse);
  ConvertSidToStringSid(Sid, sSid);
  Result:=sSid;
  LocalFree(Cardinal(sSid));
  FreeMemory(Sid);
  FreeMemory(ReferencedDomainName);
end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием