1

Я пытаюсь получить следующее поведение с 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

2 ответа2

1

Попробуй это:

a::Send, {s down}

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

Проблема в вашем коде:

GetKeyState("s", "P") будет учитывать только физические ключи. S, с другой стороны, был отправлен как виртуальный ключ AHK.

0

Отправка {s Down} не вызовет повторение ключа. Вам нужно использовать цикл. Попробуйте это:

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


d::
    stop = 1
    return

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .