Possible en double:
Delphi: Prompt for UAC elevation when neededDelphi droits d'administrateur D7 W7
Mon application écrite en Delphi 7 pour Windows 7 nécessite des privilèges d'administrateur pour certaines fonctionnalités. Comment puis-je l'élever à l'administrateur du code source?
Je vérifie les droits de l'utilisateur avec ce code:
function IsUserAdmin : boolean;
const CAdminSia : TSidIdentifierAuthority = (value: (0, 0, 0, 0, 0, 5));
var sid : PSid;
ctm : function (token: dword; sid: pointer; var isMember: bool) : bool; stdcall;
b1 : bool;
begin
result := false;
ctm := GetProcAddress(LoadLibrary('advapi32.dll'), 'CheckTokenMembership');
if (@ctm <> nil) and AllocateAndInitializeSid(CAdminSia, 2, $20, $220, 0, 0, 0, 0, 0, 0, sid) then
begin
result := ctm(0, sid, b1) and b1;
FreeSid(sid);
end;
end;
Si l'application a commencé en tant qu'administrateur, il retourne vrai; sinon, alors faux. Maintenant, si j'ai False comme résultat, je veux automatiquement élever le programme à l'administrateur.
J'ai essayé avec l'élévation manifeste à l'administrateur, mais si je démarre l'application, alors je vois une invite d'UAC et si je réponds "non", l'application ne fonctionnera pas du tout.
Une chance de recevoir de l'aide?
J'ai besoin de droits d'administrateur pour un accès brut au lecteur physique.
EDIT:
J'ai aussi essayé de désactiver l'UAC que pour cette application (ParamStr (0)) également à partir du code (après avoir appuyé sur le bouton "Désactiver l'UAC pour cette application").
Ainsi, seuls les utilisateurs disposant de droits d'administration peuvent utiliser votre application? Ses applications comme ça je travaille avec ma base d'utilisateurs pour éviter comme la peste. Une note supplémentaire sur le contrôle de compte d'utilisateur, si un utilisateur n'a pas la possibilité d'élever via une invite UAC, l'invite doit lui permettre de l'élever avec un nom d'utilisateur et un mot de passe alternatifs. Ce n'est pas un senerio que vous avez expliqué dans votre question. – edusysadmin
> "Ainsi, seuls les utilisateurs disposant de droits d'administration peuvent utiliser votre application?" Non, seulement quelques fonctions dangereuses je vais informer les utilisateurs à ce sujet – wcale
@wcale - Si votre programme pourrait simplement contourner UAC et se faire exécuter dans la portée de l'administrateur, UAC serait assez inutile non? – techie007