Como ejecutar un script con una sola combinación

Esta sección es para preguntas sobre programación/scripting usando AutoHotkey.
sebaramos
Posts: 19
Joined: 14 Dec 2017, 08:37

Como ejecutar un script con una sola combinación

15 Dec 2017, 08:58

Hola estimados, junto con saludar quisiera consultar (Sé que debe ser muy fácil pero soy novato en este tema) como puedo ejecutar el siguiente Script solo realizando la combinación de teclas #c y no tener que presionar por separado todas las combinaciones que se muestran a continuación.


#c:: run C:\Program Files\Qlikview\Qv

#d:: MouseClick LEFT, 30, 65, 1
#e:: MouseClick LEFT, 150, 65, 1
#f:: MouseClick LEFT, 516, 766, 1

return

De antemano muchas gracias!!!
User avatar
Flipeador
Posts: 1005
Joined: 15 Nov 2014, 21:31
GitHub: Flipeador
Location: Argentina
Contact:

Re: Como ejecutar un script con una sola combinación

15 Dec 2017, 09:46

Hola,

Code: [Select all] [Download] (Untitled.ahk)GeSHi © Codebox Plus

#c::
Run, "C:\Program Files\Qlikview\Qv"
MouseClick, LEFT, 30 , 65 , 1
MouseClick, LEFT, 150, 65 , 1
MouseClick, LEFT, 516, 766, 1
return
sebaramos
Posts: 19
Joined: 14 Dec 2017, 08:37

Re: Como ejecutar un script con una sola combinación

15 Dec 2017, 12:36

Hola Flipeador, muchas gracias por responder, al ejecutar el código las filas de Mouseclick realizan el Click antes de que el programa se abra, ¿como puedo esperar a que abra el programa y que luego se ejecuten los clicks? gracia por la pronta respuesta Flipeador
A_AhkUser
Posts: 866
Joined: 06 Mar 2017, 16:18
Location: France

Re: Como ejecutar un script con una sola combinación

15 Dec 2017, 14:20

Hola,

Prueba el codigo siguiente:

Code: [Select all] [Download] GeSHi © Codebox Plus

#c::
Run, "C:\Program Files\Qlikview\Qv",,, PID ; lanza la bloca de notas y salva su PID (ID del programa) en la variable 'PID'
WinWait, ahk_pid %PID% ; espera hasta que la ventana aparezca
WinActivate
WinWaitActive
MouseClick, LEFT, 30 , 65 , 1
MouseClick, LEFT, 150, 65 , 1
MouseClick, LEFT, 516, 766, 1
return
sebaramos
Posts: 19
Joined: 14 Dec 2017, 08:37

Re: Como ejecutar un script con una sola combinación

18 Dec 2017, 09:06

Hola A_AhkUser,

Muchas gracias mostro! corre super, pero quisiera seguir abusando de sus buenas voluntades y espero puedan seguir ayudándome, la consulta es la siguiente:

Al ejecutarse el 2do Click (MouseClick, LEFT, 150, 65, 1) El programa que estoy automatizando carga una nueva ventana dentro del mismo.....por lo que el tercer Click (MouseClick, LEFT, 516, 766, 1) no se ejecuta, me imagino que es por la misma razón que no se ejecutaba en un principio(demora en cargar la nueva ventana). Me imagino que la nueva ventana debe tener una ID propia que pueda guarda en una variable como lo Hiciste con el ID del programa?? Que Script me serviría en este caso ya que no tengo la ruta de la ventana de un programa, solo la del programa mismo..... o existe un script que permita esperar que cargue la ventana y luego se ejecute el tercer Click sin ID??
A_AhkUser
Posts: 866
Joined: 06 Mar 2017, 16:18
Location: France

Re: Como ejecutar un script con una sola combinación

18 Dec 2017, 10:40

Hola sebaramos,

Puedes por ejemplo utilizar WinWaitNotActive en un loop (un bucle) inmediatamente después del segundo clic, comprobando a cada iteracion si la ventana que ahora ocupa el lugar de la primera pertenece al proceso:

Code: [Select all] [Expand] [Download] GeSHi © Codebox Plus




[EDIT] He sustituido Until (WinActive(AHKPID) <> ID) por Until (WinExist(AHKPID) <> ID)
sebaramos
Posts: 19
Joined: 14 Dec 2017, 08:37

Re: Como ejecutar un script con una sola combinación

18 Dec 2017, 12:18

Hola A_AhkUser,

La ventana que se abre es del mismo programa (proceso), ejecuté tu Script y no se ejecuta el tercer click ......si puedes seguir ayudándome te lo agradecería, un gran saludo!
A_AhkUser
Posts: 866
Joined: 06 Mar 2017, 16:18
Location: France

Re: Como ejecutar un script con una sola combinación

18 Dec 2017, 12:56

Acabo de comprobar el script mas abajo y parece que funciona bien con la bloca de notas; el script tira un MsgBox tanto pronto como aparece la primera ventana y luego, lo segundo tanto pronto como aparece una ventana-hija del proceso notepad:

Code: [Select all] [Expand] [Download] GeSHi © Codebox Plus



Si sigue no funcionando quizas debas añadir un sleep después de ultimo WinWaitActive:

sebaramos
Posts: 19
Joined: 14 Dec 2017, 08:37

Re: Como ejecutar un script con una sola combinación

18 Dec 2017, 14:05

A_AhkUser finalmente dejè el Script así,

#c::
Run, "C:\Program Files\Qlikview\Qv",,, PID ; lanza la bloca de notas y salva su PID (ID del programa) en la variable 'PID'

WinWait, ahk_pid %PID% ; espera hasta que la ventana aparezca
WinActivate
WinWaitActive

MouseClick, LEFT, 30 , 65 , 1
MouseClick, LEFT, 150, 65 , 1
sleep, 4000
MouseClick, LEFT, 516, 766, 1

return


y funciona a la perfección.....muchas gracias por la ayuda.


La última consulta y no molesto mas por hoy jajjaja como puedo copiar y pegar una url de internet y copiarla en un excel .......es el siguiente paso de mi automatización........tengo un tema con esta pregunta en el foro sin respuesta aún .....espero puedas ayudarme....un gran abrazo y gracias por compartir tus conocimientos!!

Return to “Pedir Ayuda”

Who is online

Users browsing this forum: No registered users and 2 guests