![]() |
GetAccountSID
Delphi-Quellcode:
Aber das hatte ich doch gestern schon eingetragen. :gruebel:
{
Author : Michael Puff - [url]http://developer.luckie-online.de[/url] Date : 2005-12-12 License : PUBLIC DOMAIN } function ConvertSidToStringSid(SID: PSID; var StringSid: LPSTR): Boolean; stdcall; external 'advapi32.dll' name 'ConvertSidToStringSidA'; function GetAccountSid(const Server, User: WideString; var Sid: PSID): DWORD; var dwDomainSize, dwSidSize: DWord; R : LongBool; wDomain : WideString; Use : DWord; begin Result := 0; SetLastError(0); dwSidSize := 0; dwDomainSize := 0; R := LookupAccountNameW(PWideChar(Server), PWideChar(User), nil, dwSidSize, nil, dwDomainSize, Use); if (not R) and (GetLastError = ERROR_INSUFFICIENT_BUFFER) then begin SetLength(wDomain, dwDomainSize); Sid := GetMemory(dwSidSize); R := LookupAccountNameW(PWideChar(Server), PWideChar(User), Sid, dwSidSize, PWideChar(wDomain), dwDomainSize, Use); if not R then begin FreeMemory(Sid); Sid := nil; end; end else Result := GetLastError; end; procedure TForm1.Button1Click(Sender: TObject); var SID: PSID; strSID: PChar; s: String; err: DWORD; begin err := GetAccountSid('hal9000', 'Michael', SID); if err = 0 then begin if ConvertSidToStringSid(SID, strSID) then s := strSID else s := SysErrorMessage(err); end else s := SysErrorMessage(err); ShowMessage(s); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz