JoyX JoyY zu SendInput

JoyX JoyY zu SendInput

Mein Joystick/Gamepad hat die standardmäßigen 10 Tasten sowie die Tasten für die X- und Y-Achse. Das folgende Skript funktioniert, aber nicht so, wie ich es möchte:

Right::
GetKeyState, state, JoyX
If state > 75 ;JoyX is pressed to right
SendInput testmessage

Dieses Skript druckt „Testnachricht“, wenn ich die rechte Pfeiltaste auf meiner Tastatur drücke, während JoyX > 75 ist. Was ich möchte, ist, dass, wenn JoyX > 75 ist, „Testnachricht“ gesendet wird, ohne dass ich die rechte Pfeiltaste auf meiner Tastatur drücken muss.

Ich habe versucht, JoyX oder X100 Y050 als Hotkey zu verwenden, aber ich erhalte eine Fehlermeldung: Der aktuelle Hotkey JoyX ist nicht aktiv, da er nicht im Tastaturlayout enthalten ist.

Danke!

Antwort1

Der Joystick hat einen Status, der abgefragt werden muss, da er kein „Button“-Ereignis hat, auf das er reagieren kann. Folgendes wird verwendetNeuzuordnung eines Joysticks zur Tastatur oder Mauszur Inspiration, insbesondere dieSo senden Sie mit einer Joystick-Achse oder einem POV-Hut Tastenanschläge oder MausklicksAbschnitt. Es verwendet einen Timer, um den Zustand des Joysticks regelmäßig abzufragen und sendet die Eingabe, wenn der Zustand >75 ist.

#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

Damit es für Sie gut funktioniert, müssen Sie mit der Abfragehäufigkeit des Timers experimentieren (derzeit 5) und möglicherweise den KeyToHoldDownStil der Statusverfolgung implementieren, da Sie den Text andernfalls möglicherweise wiederholt senden.

verwandte Informationen