按下一个键并按住第二个键,直到按下第三个键

按下一个键并按住第二个键,直到按下第三个键

我正在尝试使用 AutoHotKey 实现以下行为:A按下键时,AHK 会按住该S键直到D按下该键。以下脚本未按预期工作:

a::
    Send {s Down}
    return

d::
    if (GetKeyState("s", "P"))
        {
        Send {s Up}
        }
    return

以下情况也都不是:

a::
    release_s = 0
    Loop
        {
        SendInput, s
        if release_s
            break
        }
    return

d::
    release_s = 1
    return

答案1

尝试一下这个:

a::Send, {s down}

d::
    if(GetKeyState("s")) {
        Send, {s up}
    }
return

您的代码中存在问题:

GetKeyState("s", "P")仅占身体的钥匙。S另一方面,已经作为虚拟的通过 AHK 键。

答案2

发送 {s Down} 不会导致按键重复。您需要使用循环。试试这个:

a::
    stop = 0
    Loop 
    {
        SendInput, s
        Sleep 50 ;adjust for speed of repetition
        if stop
            break
    }
    return


d::
    stop = 1
    return

相关内容