JoyX JoyY para enviar entrada

JoyX JoyY para enviar entrada

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 KeyToHoldDownestilo de seguimiento del estado; de lo contrario, podría enviar el texto repetidamente.

información relacionada