Duda con scripts permanentes

Esta sección es para preguntas sobre programación/scripting usando AutoHotkey.

Moderator: Flipeador

User avatar
Hache_raw
Posts: 7
Joined: 24 Sep 2017, 15:02
Location: Tenerife
Contact:

Duda con scripts permanentes

24 Sep 2017, 15:29

Buenas tardes,

Intento hacer mi primer código con AHK y aun leyendo la ayuda hay cosas que no entiendo del todo.

La finalidad es:
Pulsar {enter} cada 500ms mientras pulso {up} durante un segundo y después {down} otro segundo.
Todo esto repitiéndose indefinidamente.

Mis dudas son:
1. Debería usar #Permanent o sólo Loop?
2. Para pararlo creo que hay que usar Pause::Exit app pero no sé si meterlo dentro o fuera del Loop.

Esto es lo que he pensado:

Code: Select all

!x::
Loop
{
    SendInput {enter} 
    Sleep 500
} 

!k::
Loop
{
    SendInput {up down} 
    Sleep 1000
    SendInput {up up}
    SendInput {down down} 
    Sleep 1000
    SendInput {down up}
}

;dónde pongo Pause::ExitApp ??
Funcionaría? Estoy en el móvil y lo necesito para mañana pero no puedo testarlo.

Muchas gracias por vuestro tiempo.
Make it idiot proof and someone will make a better idiot.
User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: Duda con scripts permanentes

24 Sep 2017, 16:16

Hola, no es necesario utilizar Reload ni ExitApp, a menos que lo que quieras sea terminar el Script, en ese caso utiliza ExitApp.
Si reasignas teclas en el Script, éste no termina automáticamente, por lo cual utilizar #Persistent no tiene sentido. Además de Loop (while en el ejemplo), utilizaría SetTimer.

Prueba este Script, F1 para iniciar, F2 para parar:

Code: Select all

F1::
Gosub t1
SetTimer, t1, 500

i := false
While (!i)
{
    SendInput {up down} 
    Sleep 1000
    SendInput {up up}

    SendInput {down down} 
    Sleep 1000
    SendInput {down up}
}
Return


t1:
SendInput {enter}
Return


F2::
i := true
SetTimer, t1, Off
Return
User avatar
Hache_raw
Posts: 7
Joined: 24 Sep 2017, 15:02
Location: Tenerife
Contact:

Re: Duda con scripts permanentes

24 Sep 2017, 17:10

Muchas gracias. Por la mañana lo pruebo. Sólo hay una cosa que no entiendo: ¿Por qué es necesario el Gosub de la primera línea?
Make it idiot proof and someone will make a better idiot.
User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: Duda con scripts permanentes

24 Sep 2017, 17:49

No es necesario, solo lo puse para no esperar los primeros 500ms.
User avatar
Hache_raw
Posts: 7
Joined: 24 Sep 2017, 15:02
Location: Tenerife
Contact:

Re: Duda con scripts permanentes

25 Sep 2017, 03:11

Buenos días. El código funciona casi perfecto. El programa para el que lo quería no reconoce la pulsación del {enter} aunque otros sí. He probado con los distintos tipos de Send pero al final me he decantado por usar otro programa para emular la pulsación del {enter} ya que es algo que sólo voy a usar uno o dos días mientras no estoy en casa.

Muchas gracias!
Make it idiot proof and someone will make a better idiot.
User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: Duda con scripts permanentes

25 Sep 2017, 07:07

Prueba ejecutando el Script como Administrador. Tal vez con ControlSend...
User avatar
Hache_raw
Posts: 7
Joined: 24 Sep 2017, 15:02
Location: Tenerife
Contact:

Re: Duda con scripts permanentes

25 Sep 2017, 15:18

Sigue sin funcionar y creo que lo he hecho bien:

Code: Select all

ControlSend, WindowsForms10.Window.8.app.0.141b42a_r9_ad11, {enter}, Uso a distancia de tu PS4
Image

Estaría genial que funcionase y poner todo el código así para que trabaje sólo en esa ventana, pero no me importa mucho ya que como dije, lo usaré en horas que no esté usando el pc.
Make it idiot proof and someone will make a better idiot.
User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: Duda con scripts permanentes

25 Sep 2017, 15:44

¿Que función cumple la tecla enter?
Prueba dejando el primer parámetro en blanco y en el parámetro WinTitle utiliza ahk_id [identificador de la ventana].
Prueba con SendPlay, ejecutando el Script como Administrador como te dije, y desactivando UAC.
User avatar
Hache_raw
Posts: 7
Joined: 24 Sep 2017, 15:02
Location: Tenerife
Contact:

Re: Duda con scripts permanentes

25 Sep 2017, 15:59

Muchas gracias por la insistencia Flipeador. He probado todo lo que dices, siempre como administrador y probando varias combinaciones.

El programa en cuestión es el Share Play de PS4 que me permite jugar a la PS4 desde el pc. Nop usa UAC.
Necesita el uso de un mando original (lo tengo) pero también acepta varias teclas del teclado: flechas, enter y escape.
Lo curioso es que las flechas las reconoce pero el enter y el escape no.

Antes de descubrir AHK intenté usar mapeadores para asignar una tecla del teclado al mando y fuese el mando el que mandase la orden al programa, pero no supe configurarlo.

Lo dicho, te agradezco mucho la dedicación pero tampoco quiero ocuparte mucho tiempo pues es algo que usaré un par de días y nunca más.
Make it idiot proof and someone will make a better idiot.
User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: Duda con scripts permanentes

25 Sep 2017, 16:10

Tal vez la tecla se presiona tan rápido que la aplicación no la registra.
Intenta con este Script:

Code: Select all

F1::
Gosub t1
SetTimer, t1, 500

i := false
While (!i)
{
    SendInput {up down} 
    Sleep 1000
    SendInput {up up}

    SendInput {down down} 
    Sleep 1000
    SendInput {down up}
}
Return


t1:
SendInput {enter down}
Sleep 400
SendInput {enter up}
Return


F2::
i := true
SetTimer, t1, Off
Return
User avatar
Hache_raw
Posts: 7
Joined: 24 Sep 2017, 15:02
Location: Tenerife
Contact:

Re: Duda con scripts permanentes

25 Sep 2017, 16:29

Era eso :headwall: mira que lo pensé y no lo hice... GRACIAS!
Make it idiot proof and someone will make a better idiot.

Return to “Pedir Ayuda”

Who is online

Users browsing this forum: No registered users and 21 guests