Página 1 de 1

Problemas al lanzar una aplicacion en windows 7 con el UAC

Publicado: 21 Oct 2011, 13:13
por elchicha
Hola compis ha e tiempo que no estoy por aquí y es para ver si me pueden hacer cuando ejecuto un programa.con. el windows 7 no se ejecuta por qué no sale lo del amistrador o como puedo hacer para ejecutar una aplicación de programa con windows 7 pro muchas gracias de ante mano EL CHICHA

Re: windows 7 pro

Publicado: 21 Oct 2011, 13:25
por arkcrew
Hola elchicha

Quieres ejecutar una aplicación en windows 7, justo es la misma versión que tiene mi equipo, si te he entendido bien, lo que quieres es:

a) Desde una aplicación lanzar otra:
Si es así, tienes los comandos Run y ShellExecute cuyo funcionamiento es bastante similar, vease Run(Ruta_aplicacion.exe) y ShellExecute (Ruta_aplicacion.exe) , cada uno tiene algunas ventajas dependiendo de para qué se queira utilziar, así que te recomiendo que los revises en la ayuda-

b) No se te ejecuta una aplicación compilada, bueno, si es así, prueba a asegurarte de que la has compilado con la última versión de autoit, en caso de que el error persevere y continue sin ejecutarse, asegurate de que la aplicación no requiera permisos administrativos (#RequireAdmin) y en caso de que los necesite, prueba a ejecutar la aplicación como administrador (botón derecho, ejecutar como administrador), si aún así no funcionase, prueba a desactivar el uac (User Account Control / Control de cuentas de usuario) en el panel de control...

No sé si esto resuelve tu duda, pero se intenta XD

Saludos!

Re: windows 7 pro

Publicado: 21 Oct 2011, 15:16
por elchicha
hola compi me sirvio el comando( ShellExecute ("InstallTranslate.exe") )y cuando se ejecuta de sale lo de permiso de usuario que comando deveria poner para que no saltara ese reduadro un saludo de ante mano EL CHICHA

Re: windows 7 pro

Publicado: 21 Oct 2011, 15:44
por arkcrew
Hola elchicha
Probablemente el comando al que te refieras sea uno que haga click cuando sale la advertencia de "si desea abrir la aplicacion" , vamos, una ventana del control de cuentas de usuario, lo que se me ocurre, es que utilices el comando controlclick en esa ventana, para que cuando aparexca haga click en el boton correspondiente, mirate las funciones:
controlsend,send,winactivate,winwaitactive que te pueden servir, sería algo así:

Código: Seleccionar todo

$tituloventana = "el titulo que tenga la ventana en la que quieras pulsar X boton"
if winwaitactive($tituloventana) then
Winactivate("titulo de la ventana")
;opcion 1 para hacer el click:
ControlSend("", "", "Button1", "{ENTER}")
 ; Donde Button1 sería el control de boton que puedes ver con autoitgetwininfo o algo asi creo recordar q se llamaba al apli que trae autoit, es cuestion de que mires
endif
Revisalo por si me he equivocado, pero más o menos es la idea, echale un ojo y lo adaptas a tu código.
Espero te sirva
Un saludo!

Re: windows 7 pro

Publicado: 21 Oct 2011, 16:54
por elchicha
hola de nuevo no entiendo lo que me pones vamos a ver si lo podemos hacer bien yo tengo una aplicacion y la ejecuto el comando es

ShellExecute("InstallTranslate.exe")


y que mas tengo que poner para decirle ( SI) a la ventana que sale de ( Control de cuenta de usuario )

un saludo de antemano EL CHICHA

Re: windows 7 pro

Publicado: 21 Oct 2011, 17:10
por arkcrew
Buenas,

Podrias haberte mirado esas funciones que te he dicho en la ayuda y así lo entenderías, pero bueno...

Haber, lo que tienes que conseguir es un script que pulse en el botón si:

*winwaitactive

Devuelve true si la ventana está activa, ?que queremos con esto?, pués saber si la ventana está lista para que podamos trabajar sobre ella

asi pués, programaremos algo así:

Código: Seleccionar todo

if winwaitactive("TITULO DE TU VENTANA") then
endif
Siguiente cosa:

*Winactivate

Esta función nos activa la ventana para que autoit pueda mandar comandos a la ventana

Añadiriamos la linea aqui

Código: Seleccionar todo

if winwaitactive("TITULO DE TU VENTANA") then
winactivate("TITULO DE TU VENTANA")
endif
Siguiente paso:

*ControlSend

Simula la pulsacion de una tecla o de un botón según se espècifique

vease:

Código: Seleccionar todo

if winwaitactive("TITULO DE TU VENTANA") then
winactivate("TITULO DE TU VENTANA")
ControlSend("", "", "Button1", "{ENTER}")
endif
AHORA BIEN

Este code no te va a funcionar si no lo adaptas a tus variables, como el COntrolSend, asegurate de que sea Button1 el boton que debe pulsar, y donde pone TITULO DE TU VENTANA, debes cambiarlo por el de tu ventana

Sino, revisa las funciones estas en la ayuda y aprende su funcionamiento que viene con ejemplos y bien explicado.
Espero que esta vez me haya explicado bien

Un saludo!

[/code]

Re: windows 7 pro

Publicado: 21 Oct 2011, 18:02
por elchicha
Hola compi gracias si te esplicas muy bien pero me da error al ejecutar un saludo de antemano EL CHICHA

Re: windows 7 pro

Publicado: 21 Oct 2011, 18:05
por arkcrew
Hola,

Publicame el código que tienes así vemos que es lo que haces mal y lo podemos corregir, te habria programado algo, pero mi PC tiene quitado el UAC porque nada mas que me da problemas, así que pasa el code y lo vemos

un saludo!

Re: Problemas al lanzar una aplicacion en windows 7 con el U

Publicado: 21 Oct 2011, 18:59
por elchicha
Yo lo tengo asi pero no pasa del cuadro ( Control de cuentas de usuario ) y se queda marcado en (NO) y se para que mas ay que poner por que ponga la que ponga me da error me falta algo pero no doy con ellos un saludo EL CHICHA

ShellExecute("InstallTranslate.exe")
if winwaitactive("Control de cuentas de usuario") then
winactivate("Control de cuentas de usuario")
ControlSend("", "", "Button1", "{ENTER}")
endif

Re: Problemas al lanzar una aplicacion en windows 7 con el U

Publicado: 22 Oct 2011, 16:21
por arkcrew
Hola elchicha

Prueba a asegurarte de que todo está correcto, comprueba el título de la ventana y el control del botón utilizando Autoit Window Info.
Esto no es una función sino una utilidad que trae autoit, la puedes encontrar en programas>Auoit

Saludos!

Re: Problemas al lanzar una aplicacion en windows 7 con el U

Publicado: 22 Oct 2011, 18:48
por chekok
No es necesario que controles la ventana de aviso del UAC, existe un modo más sencillo, práctico y más eficiente.

Desactivas el UAC directamente en el registro de windows, ejecutas el resto de tu código y después lo vuelves a restaurar al estado anterior (lo vuelves a activar) si lo deseas cuando dejes de ejecutar tu script.

El código sería el más o menos así:

Código: Seleccionar todo

$varuac = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "ConsentPromptBehaviorAdmin")
If $varuac Then
	If $varuac <> 0 Then
		$varuac2 = RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "ConsentPromptBehaviorAdmin","REG_DWORD","0")
	EndIf
EndIf
Aqui tu código...
Exit
Lo que hacemos es leer en el registro de windows el valor del UAC, el cual si su valor es cero, está desactivado, si tiene un valor distinto está activado en uno de los distintos niveles que admite win7 y lo que hacemos es cambiarlo a cero.

Ahora ya está desactivado el UAC y cualquier otra cosa que hagamos en el script que muestre la molesta pantalla de aviso, simplemente esta no aparecerá y ejecutará nuestra instrucción directamente.

Lo tengo más que probado y funciona 100%, por cierto, no hagáis un mal uso de esta información.

Re: Problemas al lanzar una aplicacion en windows 7 con el U

Publicado: 23 Oct 2011, 02:41
por BasicOs
@checkok Gracias por la info, no hay nada como no liarse con todos los menus y submenus de todas las diferentes versiones del windows PARA DESACTIVAR UAC...

Aquí añadí un programa basandome en la clave del registro.

Desactivador de UAC:
http://www.emesn.com/autoitforum/viewto ... f=4&t=2945
SAlu22:)

Re: Problemas al lanzar una aplicacion en windows 7 con el U

Publicado: 24 Oct 2011, 08:50
por Ximorro
En el ControlSend también hay que especificar la ventana, no sólo el control...

De todas maneras él lo que quiere no es manejar esa ventana, sino que no salga.
Se puede desactivar con el código de chekok (o a mano desde la interfaz de Windows), pero recordad que así se quita definitivamente, si queréis el control de cuentas (¿alguien lo quiere?) hay que volver a activarlo (es trivial ampliar el código de chekok para restaurar al final el registro).

elchicha, a lo mejor te es suficiente ejecutarlo como administrador, si sirve te evitas tocar el registro.
Prueba a añadir

Código: Seleccionar todo

#RequireAdmin
al principio del programa.

Y una cosa, por favor, por comas y puntos que cuesta mucho leerte...

Re: Problemas al lanzar una aplicacion en windows 7 con el U

Publicado: 25 Oct 2011, 12:50
por elchicha
Hola compi.
me sirvio lo de (#requiereadmin).
pero me sige saliendo la venta de (Control de cuenta de usuario ).
y no doy como para que cambie del (NO) al (SI) ya que lo otro que comentaron de activar o desactivar el (UAC) no funciona bien .
espero que me entiendo y si ay algun comando para esa venta un saludo EL CHICHA

Re: Problemas al lanzar una aplicacion en windows 7 con el U

Publicado: 25 Oct 2011, 15:40
por BasicOs
Los antivirus también te preguntan, si vas a ejecutar algo peligroso. Es la función parecida a la del antivirus cuando tienes un virus.

El usuario es informado de que se va a tocar por dentro su ordenador, y que puedes causar problemas.


Una aclaración sobre esto:
¿No deseas informar al usuario que vas a quitar la protección del Windows?.
Yo lo haría, es ser honesto con el usuario y explicarle lo que estás haciendo con el programa, si no desea hacerlo para que tenga la oportunidad de cancelarlo.

Salu22:)

Re: Problemas al lanzar una aplicacion en windows 7 con el U

Publicado: 25 Oct 2011, 16:49
por elchicha
BasicOs escribió:Los antivirus también te preguntan, si vas a ejecutar algo peligroso. Es la función parecida a la del antivirus cuando tienes un virus.

El usuario es informado de que se va a tocar por dentro su ordenador, y que puedes causar problemas.


Una aclaración sobre esto:
¿No deseas informar al usuario que vas a quitar la protección del Windows?.
Yo lo haría, es ser honesto con el usuario y explicarle lo que estás haciendo con el programa, si no desea hacerlo para que tenga la oportunidad de cancelarlo.

Salu22:)

Hola compi lo entiendo.
entonces lo unico que se puede hacer es desactivar el UAC para que no salga la ventana que comento.
pues si no se puede hacer nada mas un saludo y gracias a todos EL CHICHA

Re: Problemas al lanzar una aplicacion en windows 7 con el U

Publicado: 26 Oct 2011, 08:15
por Ximorro
elchicha, no hace falta que me pongas el comentario en advertencia, me sale todo en rojo y me manda un MP.
¡Me ha dejao acojonao! :smt003

Vamos a ver, ¿qué cosas has probado exactamente? ¿has probado el código de chekok de más arriba.

¿Qué valor tienes ahora en esa clave de registro?
Ejecuta por ejemplo esto y dinos qué te da:

Código: Seleccionar todo

$varuac = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "ConsentPromptBehaviorAdmin")
MsgBox(0, "UAC", "UAC: " & $varuac)
La otra opción también es posible, la de apretar el botón. Casi lo tenias pero te falta identificar la ventana si no no encuentra el botón. Además conviene poner un time-out por si el UAC está desactivado y no aparece la ventana.
Por otro lado para apretar botones prefiero hacer click:

Código: Seleccionar todo

$tituloUAC = "Control de cuentas de usuario"
ShellExecute("InstallTranslate.exe")
If WinWaitActive($tituloUAC, 5) then
	ControlClick($tituloUAC, "", "Button1", "primary")
EndIf
Así si todo va bien después de ejecutar el InstallTranslate.exe esperará 5 segundos a ver si sale la UAC (si te parece mucho o poco cambia el numerito a algo que se te ajuste mejor).
Si sale presionará el botón, porque seguro que es Button1 ¿eh?, y si no sale pues continúa con el programa.

Re: Problemas al lanzar una aplicacion en windows 7 con el U

Publicado: 27 Oct 2011, 11:00
por elchicha
Hola Ximorro .
en el primer apartado de sale una vetana que pone( UAC:5)
y el segundo donde tengo que poner el nombre de la venta por que no doy donde ponerlo o como ponerlo ya que siempre pasa lo mismo sige sin ejecutar el (SI)
un saludo EL CHICHA

Re: Problemas al lanzar una aplicacion en windows 7 con el U

Publicado: 28 Oct 2011, 08:38
por Ximorro
Tengo una duda, ¿realmente quieres hacer un programa AutoIt o simplemente quieres quitar la UAC, da igual cómo se haga?
Si es lo segundo simplemente entra en el panel de control y lo quitas. O sencillamente permite que el usuario sepa que se está instalando algo (¿qué hay de malo en ello?) y que elija si quiere instalarlo o no.

Si es lo primero...
Ese valor 5 es que la UAC sigue activa. Si se supone que has incluido el código de chekok, o es que se reactiva solo o es que no tienes permisos para cambiar esa opción. Entonces tendrás que vivir con ello o que el programa presione el botón.

Y para eso se usa el código que te he puesto. El título de la ventana ya lo he puesto donde tiene que estar (entre otros sitios en el primer parámetro de la función que identifica el botón donde quieres hacer clic, antes faltaba eso). Ahora bien, el título tienes que asegurarte de que es exactamente ese ("Control de cuentas de usuario") y que el botón es "Button1", tal como me habéis puesto.

Piensa que yo estoy en un XP, que no tiene UAC, así que no puedo ver nada de eso y me está resultando un poco difícil ayudar en este caso...

Re: Problemas al lanzar una aplicacion en windows 7 con el U

Publicado: 29 Oct 2011, 17:34
por elchicha
gracias compi lo dejo por inutil ya que lo desactivares y segire haciendos los programas un saludo a todos y muchas gracias ELCHICHA