2011-08-17 13 views
6

Tengo un instalador que me gustaría ejecutar desde un script. El instalador solicita la elevación UAC pero no necesita elevación porque estoy instalando en un directorio de usuario. ¿Hay alguna forma de ejecutar el instalador para que no solicite la elevación de UAC?¿Puedo detener un ejecutable para que no solicite la elevación de UAC?

La secuencia de comandos está escrita en Python para que pueda acceder a la API de Windows a través de ctypes.

Cambiar el instalador no es una opción.

+0

¿Qué instalador es? Esto podría ser un duplicado de: http://stackoverflow.com/questions/252871/make-uac-optional-in-windows-installer-on-vista –

+0

@John es un exe creado por Inno Setup. –

+2

[Esta pregunta del superusuario] (http://superuser.com/questions/24631/prevent-elevation-uac-for-an-application-that-doesnt-need-it) parece ser relevante. –

Respuesta

4

usted tiene que establecer la variable de enviromnet __COMPAT_LAYER para su proceso de RunAsInvoker. Luego puede ejecutar el ejecutable sin ningún aviso de UAC.

Puede usar la función API de Windows SetEnvironmentVariable para este fin.

+0

Norbert, podría hacerme un favor y publicar la misma respuesta a mi pregunta: http://stackoverflow.com/questions/7004310/bypassing-elevation-when-launching-a-new-process el sistema se queja porque tengo 't aceptó una respuesta :-) –

+0

He respondido a su pregunta. –

Cuestiones relacionadas