Une fois mon programme installé sur une machine cliente, comment puis-je forcer mon programme à s'exécuter en tant qu'administrateur sous Windows 7 ?
Vous devrez modifier le manifeste qui est intégré au programme. Ceci fonctionne sur Visual Studio 2008 et plus : Projet + Ajouter un nouvel élément, sélectionnez "Application Manifest File". Changez l'élément <requestedExecutionLevel>
en :
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
L'utilisateur reçoit l'invite [UAC][1] lorsqu'il lance le programme. Utilisez-le à bon escient ; sa patience peut s'épuiser rapidement.
Ajouter un élément requestedExecutionLevel
à votre manifeste n'est que la moitié de la bataille ; vous devez vous rappeler que [UAC][1] peut être désactivé. Si c'est le cas, vous devez effectuer la vérification à l'ancienne et afficher une boîte de dialogue d'erreur si l'utilisateur n'est pas administrateur
(appelez [IsInRole(WindowsBuiltInRole.Administrator)
][2] sur le CurrentPrincipal
de votre thread).
[1] : http://en.wikipedia.org/wiki/User_Account_Control [2] : http://msdn.microsoft.com/en-us/library/46ks97y7.aspx
Vous pouvez intégrer un fichier manifeste dans le fichier EXE, qui fera en sorte que Windows (7 ou supérieur) exécute toujours le programme en tant qu'administrateur.
Vous trouverez plus de détails dans [Step 6 : Create and Embed an Application Manifest (UAC)][1] (MSDN).