Mantener pulsada la tecla "w" haciendo doble pulsacion en ella

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

Moderator: Flipeador

Nucleorion
Posts: 19
Joined: 11 Dec 2016, 11:33

Mantener pulsada la tecla "w" haciendo doble pulsacion en ella

12 Dec 2016, 05:02

Hola,

He estado intentando mantener pulsada una tecla con doble pulsación, por ejemplo la w para avanzar en los juegos sin tener que estar manteniendo la presion sobre la tecla constantemente.

Entre las muchas cosas que he probado la que mas cerca ha estado ha sido esta:

Code: Select all

Pulsada:=true

w:: ;No consigo evitar que se active la doble pulsacion al repetirse la tecla
If (A_PriorHotKey = "w" AND A_TimeSincePriorHotkey < 400) ;El ultimo valor serian los milisegundos entre pulsaciones para activar la doble pulsacion
{
   Pulsada := !Pulsada ;Si pulsada es true se pone en false y si es false se pone en true
   If Pulsada
      Send {w up}
   Else
      Send {w down}
	  ;keywait, w
   Return
}
else
	Send, w
Return
Al mantener pulsada la tecla w se activa la doble pulsacion, pensaba que poniendo ~w:: se iba a evitar eso pero tampoco
User avatar
Flipeador
Posts: 1193
Joined: 15 Nov 2014, 21:31
GitHub: Flipeador
Location: Argentina
Contact:

Re: Mantener pulsada la tecla "w" haciendo doble pulsacion en ella

13 Dec 2016, 10:09

Hola, diría que en casi todos (por no decir todos) los teclados no es posible mantener presionada teclas que no sean modificadoras como ALT, CTRL, SHIFT, etc.

Code: Select all

~w::
If (A_PriorHotKey = A_ThisHotkey) && (A_TimeSincePriorHotkey < 200) {
	KeyWait w
	While !GetKeyState("w") {
		SendInput w
		Sleep 50 ;quita esta linea para mayor velocidad.
	}
	KeyWait w
}
return
daser22
Posts: 4
Joined: 22 Aug 2019, 20:13

...g

22 Aug 2019, 20:35

..
Nucleorion
Posts: 19
Joined: 11 Dec 2016, 11:33

Re: Mantener pulsada la tecla "w" haciendo doble pulsacion en ella

Today, 11:59

Hola, Muchas gracias :D se me pasó

Intento de nuevo hacerlo funcionar pero no va. He intentado tambien ejecutar unas funciones de autowalk y autorun https://www.autohotkey.com/boards/viewtopic.php?f=19&t=19372&p=324558#top

Me gustaria saber lo que hace cada instrucción para poder editarlo y ajustarlo, paso a comentar las que creo que entiendo

Code: Select all

~w:: //No entiendo que hace el signo antes de la w, he encontrado algo de cambia si es de 32 o 64 bits pero creo que no va por ahi la cosa
If (A_PriorHotKey = A_ThisHotkey) && (A_TimeSincePriorHotkey < 200) { //Aqui detecta si la tecla ha sido pulsada dos veces en menos de 200 ms
	KeyWait w // Entiendo que se queda esperando a que pulsemos la w pero no entiendo porque. ¿Acaso es esta la segunda pulsación?
	While !GetKeyState("w") { //Mientras no se pulse de nuevo la w
		SendInput w // se envia la pulsación de la tecla
		Sleep 50 ;quita esta linea para mayor velocidad. //Le da mayor velocidad al detectar que volvemos a pulsar la w?
	}
	KeyWait w // No entiendo porque se queda de nuevo esperando al terminar el while
}
return
Entonces con el autorun he intentado

Code: Select all

~w::
If (A_PriorHotKey = A_ThisHotkey) && (A_TimeSincePriorHotkey < 200) {
	AutoRun() //La propia funcion de autorun ya contempla que al pulsar la w dejara de correr
}
return
Pero no me funciona

Return to “Pedir Ayuda”

Who is online

Users browsing this forum: Thorx and 3 guests