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 ====== | ||