50 votes

Comment empêcher les messages "Ce programme n'a peut-être pas été installé correctement" sous Vista

J'ai un produit exécutable du programme d'installation que des copies des fichiers sur le disque dur de l'utilisateur. Ce n'est pas typique d'un installateur dans le sens normal (il n'a rien ajouté au Menu Démarrer ou dossiers Program Files).

Chaque fois que le programme d'installation est exécuté sur Vista, après l'exe se termine, Vista produit une boîte de dialogue de tâche:

  • Ce programme ne pourrait pas installé correctement
  • Réinstaller en utilisant les paramètres recommandés
  • Ce programme s'est installé correctement

Est-il une fonction que j'ai besoin d'appeler à partir de l'exe ou une entrée de registre pour définir, pour indiquer au système d'exploitation que le programme s'est installé correctement (ou au moins supprimer ce message)?

Questions connexes: http://stackoverflow.com/questions/1069135/this-program-might-not-have-installed-correctly-message-in-windows-7-rc (pour Windows 7-questions spécifiques)

44voto

mik Points 251

Incluez cette section dans le fichier manifeste du programme:

 <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
  <application>
    <!--The ID below indicates application support for Windows Vista -->
      <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />
    <!--The ID below indicates application support for Windows 7 -->
      <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />
  </application>
</compatibility>
 

Il supprimera l'Assistant Compatibilité des programmes en indiquant que votre application est compatible avec Vista et Windows 7.

7voto

Jon Grant Points 7560

Vous devez ajouter des informations dans la section AppCompat du registre.

Consultez ce lien et recherchez "Comment désactiver un avertissement de Compatibility Program Assistant".

De plus, il existe apparemment une méthode qui consiste à ajouter un fichier manifeste à votre exécutable d'installation pour le marquer comme "compatible Vista".

3voto

Anders Points 34448

La première chose à faire est d’ajouter un "manifeste Vista" avec createdExecutionLevel.

Si cela ne suffit pas (cliquer sur annuler lors de la désinstallation avec UAC désactivé, etc.), vous devez utiliser des éléments non documentés, tels que définir le champ de version de l'image dans l'en-tête PE sur 6.0.

3voto

Larry Osterman Points 12713

Une des raisons pour lesquelles ce message apparaît est que le système pense que vous exécutez un programme d'installation mais qu'il ne trouve pas d'entrée pour l'application dans la liste Ajout / Suppression de programmes.

Je ne sais pas si c'est le cas pour votre application, mais cela vaut la peine de vérifier.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X