2009-03-20 3 views
2

J'ai créé une application MFC à l'aide de Visual Studio 2008 et elle doit fonctionner sous W2K, XP, 2003 et Vista. L'application écrit dans HKLM dans le registre et ne fonctionnera sur Vista que si vous l'exécutez en tant qu'administrateur.Forcer l'exécution de mon application MFC en tant qu'administrateur sous Vista

Ma question est: puis-je forcer l'application à fonctionner en tant qu'administrateur automatiquement? Cela implique-t-il de créer un fichier manifeste? En ce moment je suis ce qui suit dans stdafx.h que je suppose que crée un fichier manifeste à la volée:

#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"") 

Puis-je modifier cette ligne pour forcer l'élévation ou dois-je faire quelque chose avec le manifeste du projet VC paramètres?

Merci d'avance.

Répondre

9

j'ai découvert comment faire en utilisant certaines options de l'éditeur de liens C++ avancé:

  1. Ouvrir la boîte de dialogue Pages de propriétés du projet.

  2. Développez le nœud Propriétés de configuration.

  3. Développez le nœud de liaison.

  4. Sélectionnez la page de propriétés du fichier manifeste.

  5. Modifiez les propriétés Activer le contrôle de compte d'utilisateur (UAC), le niveau d'exécution UAC et la protection UAC Bypass UI.

+0

Je pense que vous devriez ajouter le lien src https://msdn.microsoft.com/fr-fr/library/bb384691.aspx – user1686407

1

Vous pouvez le faire en utilisant le manifeste. Peut-être quelque chose comme cela, mais je ne me souviens pas exactement:

<requestedExecutionLevel level="requireAdministrator"/> 
+0

voir ce document à propos requestedExecutionLevel: http://www.microsoft.com/downloads/details.aspx?FamilyID=BA73B169-A648-49AF-BC5E-A2EEBB74C16B&displaylang=en – lsalamon

0

Vous pouvez le faire non plus. Vous pouvez ajouter une ligne similaire avec un #pragma pour ajouter la directive requireAdministrator, ou vous pouvez le définir dans les feuilles de propriétés dans VS2008.

+0

Ce n'est pas une réponse utile. Postez le code exact et pas seulement un commentaire sans signification. – Elmue

Questions connexes