2011-08-17 10 views
6

Ho un programma di installazione che mi piacerebbe eseguire da uno script. Il programma di installazione richiede l'elevazione UAC ma non ha bisogno di elevazione perché sto installando in una directory utente. C'è un modo per eseguire il programma di installazione in modo che non richieda l'elevazione UAC?Posso interrompere un eseguibile dal richiedere l'elevazione UAC?

Lo script è scritto in Python in modo da poter accedere all'API di Windows tramite ctypes.

La modifica dell'installatore non è un'opzione.

+0

Che programma di installazione è? Questo potrebbe essere un duplicato di: http://stackoverflow.com/questions/252871/make-uac-optional-in-windows-installer-on-vista –

+0

@John è un exe creato da Inno Setup. –

+2

[Questa domanda superuser] (http://superuser.com/questions/24631/prevent-elevation-uac-for-an-application-that-doesnt-need-it) sembra essere rilevante. –

risposta

4

è necessario impostare la variabile enviromnet __COMPAT_LAYER per il vostro processo di RunAsInvoker. Quindi è possibile eseguire l'eseguibile senza alcun prompt UAC.

A tale scopo è possibile utilizzare la funzione API di Windows SetEnvironmentVariable.

+0

Norbert, potresti farmi un favore e postare la stessa risposta alla mia domanda: http://stackoverflow.com/questions/7004310/bypassing-elevation-when-launching-a-new-process il sistema si lamenta perché non ho Ho accettato una risposta :-) –

+0

Ho risposto alla tua domanda. –

Problemi correlati