
Mi joystick/gamepad tiene los 10 botones estándar más los botones de los ejes X e Y. El siguiente script funciona, pero no como yo quiero:
Right::
GetKeyState, state, JoyX
If state > 75 ;JoyX is pressed to right
SendInput testmessage
Lo que hará este script es imprimir "mensaje de prueba" cuando presione la tecla de flecha derecha en mi teclado mientras JoyX es > 75. Lo que quiero es que, cuando JoyX sea > 75, envíe "mensaje de prueba" sin tener que presionar el botón derecho. tecla de flecha en mi teclado.
Intenté usar JoyX como tecla de acceso rápido, o X100 Y050, pero aparece un mensaje de error: la tecla de acceso rápido JoyX actual no estará activa porque no está en la distribución del teclado.
¡Gracias!
Respuesta1
El joystick tiene un estado que debe ser sondeado ya que no tiene un evento de "botón" al que responder. Se utiliza lo siguienteCómo reasignar un joystick al teclado o al mouseen busca de inspiración, en particular elHacer que un eje de joystick o un sombrero POV envíe pulsaciones de teclas o clics del mousesección. Utiliza un temporizador para sondear periódicamente el estado del joystick y envía la entrada cuando el estado es >75.
#Persistent ; Keep this script running until the user explicitly exits it.
SetTimer, WatchAxis, 5
return
WatchAxis:
GetKeyState, state, JoyX
If state > 75 ;JoyX is pressed to right
SendInput testmessage
return
Para que funcione bien para usted, deberá jugar con la frecuencia de sondeo del temporizador (actualmente 5) y es posible que deba implementar el KeyToHoldDown
estilo de seguimiento del estado; de lo contrario, podría enviar el texto repetidamente.