Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
prog:lazarus:compilateur:modeadmin [05/06/2023 16:19]
thierry créée
prog:lazarus:compilateur:modeadmin [05/06/2023 18:07] (Version actuelle)
thierry [Quelques fonctions]
Ligne 4: Ligne 4:
  
 {{:​prog:​lazarus:​compilateur:​modeadmin1.jpg|}} {{:​prog:​lazarus:​compilateur:​modeadmin1.jpg|}}
 +===== Quelques fonctions =====
 +  * ''​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 ======
 +  * [[https://​forum.lazarus.freepascal.org/​index.php/​topic,​22454.15.html?​PHPSESSID=vlea8lq0l9j1den30c1c0kuvg3]]