AutoHotKey-удерживайте клавишу нажатой

У меня есть скрипт AutoHotKey, который должен нажать F3 когда я удерживаю Ctrl и нажмите F2 когда я выпускаю Ctrl.

мой скрипт на данный момент:

$ctrl::
Suspend, On
Send, {F3}
While (GetKeyState("Ctrl",P))
{
}
Send, {F2}
Suspend, Off
Return

но когда я держу Ctrl вниз, он ничего не делает. Когда я отпущу Ctrl, он поражает оба F3 и F2. Может кто подскажет как это исправить?

5
задан Cfinley
12.01.2023 1:05 Количество просмотров материала 2795
Распечатать страницу

3 ответа

через: http://www.autohotkey.com/docs/commands/Send.htm

удерживать или отпустить ключ: заключите в скобки имя ключа за ним следует слово вниз или вверх. Например:



Отправить {б}{б}

Отправить {TAB вниз}{TAB вверх}

Отправить {Up down}; нажмите клавишу со стрелкой вверх.

Сон 1000; держите его вниз на одна секунда.

Send> {up}; отпустите кнопку клавиша со стрелкой вверх.



Когда ключ удерживается с помощью метода выше, он не начинает автоматически повторяться, как если бы вы физически удерживали его (это потому, что auto-repeat-это характеристика водителя/оборудования). Однако для имитации можно использовать цикл автоповтор. Следующий пример посылает разделе 20 клавиш:



Петли 20 {

Отправить {Tab down}; автоматический повтор состоит из последовательных событий до событий).

Сон 30; количество миллисекунд между нажатиями клавиш (или используйте SetKeyDelay).

}

Отправить {Tab up}; отпустите клавишу.



Слово DownTemp также может быть использовано. Его действие такое же, как вниз, за исключением модификатор клавиши (Control/Shift/Alt/Win). В тех случаях, DownTemp говорит последующий посылает что ключ постоянно не вниз, и может быть выпущено всякий раз, когда нажатие клавиши призывает к этому. Для образец, Отправить {контроль DownTemp}, затем послать бы произвести нормальный "" нажатие клавиши, а не управление-нажатие клавиши.

1
отвечен Wutnaut 2023-01-13 08:53

этот код предоставляет нужный функционал:

$~ctrl::
    send {f3}
    keyWait, ctrl
    send {f2}
return
1
отвечен adaaaam 2023-01-13 11:10

keyup опция для горячих клавиш, кажется, то, что вам нужно.

вот проверенный рабочий код:

Ctrl::
Send {F3}
keywait, Ctrl, L ; prevent F3 from firing while Ctrl is being held down.
return

Ctrl Up::Send {F2}
0
отвечен Nelson 2023-01-13 13:27

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх