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

1

Estou tentando obter o seguinte comportamento com o AutoHotKey: Quando a tecla A é pressionada, o AHK mantém pressionada a tecla S até que a tecla D seja pressionada. O script a seguir não está funcionando como 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
    
por Core Xii 10.11.2012 / 01:48

2 respostas

1

Tente este:

a::Send, {s down}

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

Problema no seu código:

GetKeyState("s", "P") será responsável apenas pelas chaves físicas . S do outro foi enviado como uma chave virtual pelo AHK.

    
por 13.02.2014 / 09:09
0

Enviar {s Down} não causará a 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
    
por 12.11.2012 / 02:02

Tags