2010-07-05 13 views
5

Ho una app VB6 che ho venduto da oltre 12 anni. A volte ho utenti che hanno difficoltà a far funzionare l'app. Le scritture dei dati stanno entrando in/My Documents quindi niente tranne i file di installazione (EXE, ecc.) Entrano in C: \ Programmi (o C: \ Programmi (x86)).Previene la virtualizzazione UAC?

La soluzione al loro problema è avviare l'app, anche se sembra bloccata, quindi mostrare il task manager, visualizzare i processi, fare clic con il pulsante destro del mouse sul processo della app e deselezionare UAC Virtualization. Poi li faccio riparare l'installazione e tutto va bene.

Perché il processo viene sottoposto a UAC Virtualization e come si impedisce che si verifichi? Uso anche InstallShield 2010 Professional per creare l'installazione, non sono sicuro che sia correlato all'installer o all'app stessa.

risposta

9

Per impedire la virtualizzazione, aggiungere un manifest all'applicazione. Se si dice asInvoker o requireAdministrator, non si otterrà più la virtualizzazione. Sto indovinando asInvoker sarà meglio per voi dal momento che l'app funziona bene senza elevare.

Si può semplicemente inserire foo.exe.manifest nella stessa cartella del file exe, o incorporarlo, che ha alcune cose complicate come rendere manifesto un multiplo di 4 byte. This question copre alcuni dettagli cruenti di incorporamento.

+0

Grazie per l'informazione. Qualche link su come creare questo manifest? – Neal

+1

Nella sua forma più semplice, è solo un file XML chiamato yourexename.exe.manifest e inserito nella stessa cartella di yourexename.exe. Per un esempio del contenuto vedi http://csi-windows.com/toolkit/manifest-template tra gli altri. La parte 'requestedPrivileges' è l'aspetto importante. –

Problemi correlati