Zitat von
Christian Seehase:
Moin Michael,
da ich keine grosse Lust verspürte das Problem in C weiter anzugehen, habe ich es auf Delphi umgebaut (siehe Anhang).
Das funktioniert wenigstens
Willst du mich jetzt ärgern?
Hier habe ich verzweifelt nach einer Lösung gefragt:
http://www.delphipraxis.net/internal...=568554#568554
Noch eins. Ich habe diese Funktion:
Delphi-Quellcode:
function GetAccountSIDStrW(sid: PSID; var Name: WideString): DWORD;
var
UserSize, DomainSize: DWORD;
snu : SID_NAME_USE;
User : WideString;
Domain : WideString;
begin
result := 0;
UserSize := 0;
DomainSize := 0;
LookupAccountSidW(nil, sid, nil, UserSize, nil, DomainSize, snu);
if (UserSize <> 0) and (DomainSize <> 0) then
begin
SetLength(User, UserSize);
SetLength(Domain, DomainSize);
if LookupAccountSidW(nil, sid, PWideChar(User), UserSize, PWideChar(Domain), DomainSize, snu) then
begin
User := PWideChar(User);
Domain := PWideChar(Domain);
Name := Domain + '\' + User;
end
else
result := GetLastError;
end
end;
um die SID in den zugehörigen Namen umzuwandeln. Aber pace.SidStart ist ein Cardinal, wie komme ich denn jetzt an den Namen dran?