我的操纵杆/游戏手柄有标准的 10 个按钮以及 X 和 Y 轴按钮。下面的脚本可以工作,但不是我想要的方式:
Right::
GetKeyState, state, JoyX
If state > 75 ;JoyX is pressed to right
SendInput testmessage
此脚本将执行的操作是,当我在 JoyX > 75 时按下键盘上的右箭头键时,打印“testmessage”。我想要的是,当 JoyX > 75 时,它将 SendInput“testmessage”,而无需按下键盘上的右箭头键。
我尝试使用 JoyX 作为热键,或者 X100 Y050,但收到一条错误消息:当前热键 JoyX 将不会激活,因为它不在键盘布局中。
谢谢!
答案1
操纵杆有一个必须轮询的状态,因为它没有要响应的“按钮”事件。以下使用将操纵杆重新映射到键盘或鼠标寻找灵感,特别是制作操纵杆轴或 POV 帽发送按键或鼠标点击部分。它使用计时器定期轮询操纵杆的状态,并在状态 >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
状态跟踪的样式,否则您可能会重复发送文本。