Sovrascrivi eseguibile in C: \ Program \ MyProg su Windows Vista
-
06-07-2019 - |
Domanda
Vorrei che il mio programma si aggiornasse da solo (scaricando un nuovo exe e / o alcuni altri file da ftp) e ho usato la ricetta nella risposta accettata a questa domanda . Recap:
- Rinomina il programma in esecuzione in old-mp.exe
- Scarica l'aggiornamento come mp.exe direttamente
- Riavvia il programma
Funziona alla grande con Windows XP. Su Vista c'è un problema, poiché l'utente deve eseguire il programma come amministratore affinché funzioni. Fare clic con il pulsante destro del mouse e selezionare " Esegui come amministratore " potrebbe essere sopra le mie teste utenti Mi piace molto il semplice metodo di aggiornamento.
Soluzione
La semplice opzione è quella di includere un manifest che specifica che l'applicazione necessita dei diritti di amministratore. Quindi Vista richiederà automaticamente l'elevazione dei diritti. Il manifest dovrebbe assomigliare a questo:
<?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>
È possibile utilizzare lo strumento mt.exe per aggiungerlo a un'applicazione esistente.
In alternativa è possibile riavviare il programma con diritti amministrativi subito prima dell'aggiornamento effettivo. In questo modo l'utente non dovrà eseguire i diritti amministrativi sempre, solo durante l'aggiornamento.