Pressione uma tecla para manter a segunda tecla pressionada, até que a terceira seja pressionada

Pressione uma tecla para manter a segunda tecla pressionada, até que a terceira seja pressionada

Estou tentando obter o seguinte comportamento com AutoHotKey: Quando a Atecla é pressionada, AHK mantém a Stecla pressionada até que Dela seja pressionada. O script a seguir não está funcionando conforme o esperado:

a::
    Send {s Down}
    return

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

Nem é o seguinte:

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

d::
    release_s = 1
    return

Responder1

Tente este:

a::Send, {s down}

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

Problema no seu código:

GetKeyState("s", "P")só vai contabilizarfísicochaves. Spor outro lado, foi enviado como umvirtualchave por AHK.

Responder2

Enviar {s Down} não causará repetição de uma chave. Você precisa usar um loop. Experimente:

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


d::
    stop = 1
    return

informação relacionada