
Мой джойстик/геймпад имеет стандартные 10 кнопок, а также кнопки осей X и Y. Скрипт ниже работает, но не так, как мне нужно:
Right::
GetKeyState, state, JoyX
If state > 75 ;JoyX is pressed to right
SendInput testmessage
Этот скрипт будет выводить «testmessage» при нажатии клавиши со стрелкой вправо на клавиатуре, когда JoyX > 75. Я хочу, чтобы при JoyX > 75 он отправлял «testmessage» без необходимости нажимать клавишу со стрелкой вправо на клавиатуре.
Я попробовал использовать JoyX в качестве горячей клавиши или X100 Y050, но получил сообщение об ошибке: текущая горячая клавиша JoyX не будет активна, так как ее нет в раскладке клавиатуры.
Спасибо!
решение1
У джойстика есть состояние, которое необходимо опрашивать, поскольку у него нет события «кнопка», на которое можно было бы реагировать. Ниже используетсяПереназначение джойстика на клавиатуру или мышьдля вдохновения, в частностиСоздание оси джойстика или POV Hat для отправки нажатий клавиш или щелчков мышираздел. Он использует таймер для периодического опроса состояния джойстика и отправляет ввод, когда состояние >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
Чтобы все работало хорошо, вам придется поиграться с частотой опроса таймера (в настоящее время 5) и, возможно, реализовать стиль KeyToHoldDown
отслеживания состояния, в противном случае текст может отправляться неоднократно.