Question

Je viens de créer un programme VS C ++ 6.0 utilisant VS 2008. Lorsque je tente d'exécuter ou de déboguer l'application, Vista demande une autorisation. Qu'est-ce qui cause ce problème dans la construction du programme? Le programme est créé et exécuté à partir d’un sous-dossier de C: \ Dev

Cette réponse n’avait aucun sens pour moi comme solution au problème.

Était-ce utile?

La solution

Possibilité 1:

Votre programme est marqué comme nécessitant des droits d'administrateur dans son manifeste

Possibilité 2:

Votre programme s'appelle setup.exe ou install.exe - de tels noms de programme imposent toujours des droits d'administrateur.

Pour une explication détaillée de ces possibilités et d'autres raisons, pourquoi vous voyez cette vérification Apprendre à connaître l'article de Technet sur le contrôle de compte d'utilisateur

Autres conseils

Le MVP parlait de faire exécuter votre code et votre projet à partir de votre dossier utilisateur, par exemple c: \ utilisateurs \ votrenom \ appdata ou quelque chose sous ce chemin.

Ne désactivez pas le contrôle de compte d'utilisateur pour résoudre ce problème, sinon votre application ne fonctionnera pas sur un autre ordinateur, à moins que le contrôle de compte d'utilisateur ne soit désactivé. C'est une très mauvaise pratique. Votre application, dans un monde parfait, devrait demander des autorisations élevées à l'utilisateur.

Merci Suma. Votre réponse est la meilleure pour le moment et m'a aidé à trouver une solution. J'ai déterminé que la cause est expliquée par votre première suggestion. Renommer le fichier en un nom ne contenant pas le mot 'setup " n'a pas aidé.

Il s'est avéré que je me suis trompé. VS 2005 et 2008 sont installés et lorsque j'ai essayé d'ouvrir l'ancien fichier .dsw, c'est 2005 qui a été lancé et proposé de mettre à niveau le projet. 2005 a apparemment créé un manifeste avec une seule ligne avec la balise "assembly". Une fois le projet mis à niveau à l’aide de VS 2008, un fichier manifeste plus complet a été créé. J'ai confirmé que le manifeste était en train d'être intégré à mon programme en vérifiant le paramètre Outil de manifeste ... Entrée et sortie ... Intégrer le manifeste. Ce nouveau manifeste comprend les données suivantes:

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
      </requestedPrivileges>
    </security>   

Si vous n'êtes pas un administrateur, vous n'êtes probablement pas autorisé à exécuter des programmes dans C: \ Dev.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top