Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | |||
prog:lazarus:compilateur:modeadmin [05/06/2023 17:37] thierry [Compiler pour executer en mode Admin] |
prog:lazarus:compilateur:modeadmin [05/06/2023 18:07] (Version actuelle) thierry [Quelques fonctions] |
||
---|---|---|---|
Ligne 6: | Ligne 6: | ||
===== Quelques fonctions ===== | ===== Quelques fonctions ===== | ||
* ''WinUtils.IsWindowsAdmin'' renvoie True si l'utilisateur Windows actuellement connecté dispose des droits d'administrateur. | * ''WinUtils.IsWindowsAdmin'' renvoie True si l'utilisateur Windows actuellement connecté dispose des droits d'administrateur. | ||
+ | |||
+ | ===== Vérifier si le programme est exécuté en mode Admin ===== | ||
+ | <code delphi> | ||
+ | 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. | ||
+ | </code> | ||
+ | |||
====== Sources & Ressources ====== | ====== Sources & Ressources ====== |