Question

Je voudrais que mon programme se mette à jour (téléchargement d'un nouvel exe et / ou de certains autres fichiers de ftp) et j'ai utilisé la recette dans la réponse acceptée à cette question . Récapitulation:

  1. Renommez le programme en ancien-mp.exe
  2. Téléchargez la mise à jour en tant que mp.exe directement
  3. Redémarrez le programme

Cela fonctionne très bien pour Windows XP. Sur Vista, il y a un problème, car l'utilisateur doit exécuter le programme en tant qu'administrateur pour que cela fonctionne. Cliquez avec le bouton droit et sélectionnez "Exécuter en tant qu'administrateur". peut-être sur les têtes de mes utilisateurs ... Est-ce que quelqu'un sait un moyen de contourner cela? J'aime beaucoup la méthode de mise à jour simple.

Était-ce utile?

La solution

L'option simple consiste à inclure un manifeste indiquant que l'application doit disposer de droits d'administrateur. Ensuite, Vista demandera automatiquement l’élévation des droits. Le manifeste devrait ressembler à quelque chose comme ça:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
   <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="ApplicationName" type="win32"/>
      <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
      <security>
         <requestedPrivileges>
            <requestedExecutionLevel level="requireAdministrator"/> 
         </requestedPrivileges>
      </security>
   </trustInfo>
</assembly>

Vous pouvez utiliser l'outil mt.exe pour l'ajouter à une application existante.

Sinon, vous pouvez redémarrer le programme avec les droits administratifs juste avant la mise à jour. De cette façon, l'utilisateur n'aura pas besoin de s'exécuter avec les droits administratifs, juste lors de la mise à jour.

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