program CheckAdminMode;
uses
Windows;
function IsAdmin: Boolean;
var
hToken: THandle;
TokenInformation: TOKEN_ELEVATION;
ReturnLength: DWORD;
begin
Result := False;
if OpenProcessToken(GetCurrentProcess, TOKEN_QUERY, hToken) then
begin
if GetTokenInformation(hToken, TokenElevation, @TokenInformation, SizeOf(TOKEN_ELEVATION), ReturnLength) then
Result := TokenInformation.TokenIsElevated <> 0;
CloseHandle(hToken);
end;
end;
begin
if IsAdmin then
writeln('Le programme est exécuté en mode administrateur.')
else
writeln('Le programme n''est pas exécuté en mode administrateur.');
readln;
end.