Er brukeren Administrator

Hvordan avgjøre om den aktuelle brukeren er logget på som administrator. Forfatter unknown.const SECURITY_NT_AUTHORITY: TSIDIdentifierAuthority = (verdi: (0, 0, 0, 0, 0, 5)); konst SECURITY_BUILTIN_DOMAIN_RID = $ 00.000.020; DOMAIN_ALIAS_RID_ADMINS = $ 00000220, funksjon IsAdmin: Boolean; Var hAccessToken: THandle; ptgGroups: PTokenGroups; dwInfoBufferSize: DWORD; psidAdministrators: PSID; x: Integer; bSuccess: BOOL; begynne Resultat: = False; bSuccess: = OpenThreadToken (GetCurrentThread, TOKEN_QUERY, Sann, hAccessToken); hvis ikke bSuccess deretter begynne hvis GetLastError = ERROR_NO_TOKEN deretter bSuccess: = OpenProcessToken (GetCurrentProcess, TOKEN_QUERY, hAccessToken); slutt; hvis bSuccess deretter begynne GetMem (ptgGroups, 1024); bSuccess: = GetTokenInformation (hAccessToken, TokenGroups, ptgGroups, 1024, dwInfoBufferSize); CloseHandle (hAccessToken); hvis bSuccess deretter begynne AllocateAndInitializeSid (SECURITY_NT_AUTHORITY, 2, SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, psidAdministrators); for x: = 0 til ptgGroups.GroupCount - en gjøre hvis EqualSid (psidAdministrators, ptgGroups.Groups [x] .Sid), og start Resultat: = True; Gå i stykker; slutt; FreeSid (psidAdministrators); slutt; FreeMem (ptgGroups); end, end,



Previous:
Next Page: