检测操纵杆按钮

时间:2021-02-16 05:52:24

标签: autohotkey

我有一个简单的脚本,如果按下按钮,我会显示一条消息。非常简单的脚本,但即使我按下了右键,屏幕上也没有显示任何内容。

Joy1::
MsgBox, Joy1

Joy2::
MsgBox, Joy2

Joy3::
MsgBox, Joy3

Joy4::
MsgBox, Joy4

Joy5::
MsgBox, Joy5

这是我实际按下按钮的证据,在本例中为 1 和 2。

enter image description here

1 个答案:

答案 0 :(得分:0)

看起来是因为 AutoHotkey 使用旧 API 来检测密钥,至少在 Windows 10 中,reference。如果 AutoHotkey 窗口处于活动状态,它会检测到它们,例如当您右键单击 AutoHotkey 图标并选择“打开”时。我还能够使用 Lexikos 的 xinput library 以及该论坛 topic 的一些帖子制作一些东西,当在我的控制器(xbox 之一)上按下 'a' 时,下面会生成一个 MsgBox。

#Include path to xinput.ahk

SetTimer, checkForJoy1, 100

checkForJoy1:
XInput_Init()
state := Xinput_GetState(0)
if(state) {
    a_pressed := state.wButtons & 4096
    if(a_pressed) {
        Msgbox, Does this work [%a_pressed%]
    }
}

return