Einzelnen Beitrag anzeigen

Lasse2002

Registriert seit: 29. Nov 2004
79 Beiträge
 
RAD-Studio 2009 Pro
 
#10

Re: Sprachversion des OS herausfinden

  Alt 9. Nov 2008, 17:54
Und was machst du, wenn du ein englisches System mit deutschem Sprachpack hast, oder wenn die Administratoren-Gruppe umbenannt wurde?

Mein Vorschlag wäre, einfach den Namen der Gruppe von Windows zu erfragen:

Delphi-Quellcode:
function AdminGroupName: string;
const
  SIDAuthNT: SID_IDENTIFIER_AUTHORITY = (value: (0, 0, 0, 0, 0, 5));
var
  pAdminSID: PSID;
  Name, Domain: PChar;
  LenName, LenDomain: Cardinal;
  Use: Cardinal;
  Res: BOOL;
begin
  if AllocateAndInitializeSid(SIDAuthNT, 2, $20, $220, 0, 0, 0, 0, 0, 0, &pAdminSID) then
  try
    Name := nil;
    LenName := 0;
    Domain := nil;
    LenDomain := 0;

    Res := LookupAccountSid(nil, pAdminSID, Name, LenName, Domain, LenDomain, Use);
    if not Res and (GetLastError = 122) then
    begin
      Name := StrAlloc(LenName);
      Domain := StrAlloc(LenDomain);
      Res := LookupAccountSid(nil, pAdminSID, Name, LenName, Domain, LenDomain, Use);
    end;
    if Res then
      Result := Copy(Name, 1, LenName);
    StrDispose(Name);
    StrDispose(Domain);
  finally
    FreeSid(pAdminSID);
  end;
end;
Lasse
  Mit Zitat antworten Zitat