Функция проверяет запущена ли программа от имени администратора. Как если была бы запущена от имени администратора из контекстного меню.
1 2 3 4 5 6 |
var admin: Boolean; begin admin:= isAdmin(); if admin = True then ShowMessage('Есть админ права') else ShowMessage('Нет админ прав'); end; |
Параметры
Нет
Результат
True, если есть запущена от имени администратора, False - если нет.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
function CheckTokenMembership(TokenHandle: THandle; SidToCheck: pointer; var IsMember: BOOL): BOOL; stdcall; external advapi32 Name 'CheckTokenMembership'; function isAdmin: boolean; var PSIDAdmin: PSID; bSuccess: BOOL; const SECURITY_NT_AUTHORITY: TSIDIdentifierAuthority = (Value: (0, 0, 0, 0, 0, 5)); begin Result:= false; bSuccess:= AllocateAndInitializeSid(SECURITY_NT_AUTHORITY, 2, $00000020, $00000220, 0, 0, 0, 0, 0, 0, PSIDAdmin); if bSuccess then if CheckTokenMembership(0, PSIDAdmin, bSuccess) then Result:= bSuccess; FreeSid(PSIDAdmin); end; |