Écraser le fichier exécutable dans C: \ Program \ MyProg sous Windows Vista
-
06-07-2019 - |
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:
- Renommez le programme en ancien-mp.exe
- Téléchargez la mise à jour en tant que mp.exe directement
- 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.
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.