Тема: AHK: Активация долгим нажатием клавиши
Доброй ночи! Подскажите, пожалуйста, как сделать запуск скрипта долгим нажатием определенной клавиши.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Доброй ночи! Подскажите, пожалуйста, как сделать запуск скрипта долгим нажатием определенной клавиши.
MButton::
Sleep, 500 ; пауза
If GetKeyState("MButton","P") = 0 ; отслеживаем состояние - если кнопка отпущена
MouseClick, M ; выполняем обычное действие
else ; в противном случае, то есть если после паузы клавиша в нажатом состоянии
MsgBox, клавиша %A_ThisHotkey% нажата по истечении заданного периода ; само действие
Return
red2881
Поставил данный код на зажатие клавиши "vk31", но при обычном нажатие клавиши "vk31", она не срабатывает.
Пробовал делать через Send, {vk31}
А так же через:
Send, {vk31 Down}
Sleep, 20
Send, {vk31 Up}
Нужно обратить внимание что скрипт должен реагировать на отжатие и действовать сразу, если оно произошло.
Можно вот так:
1::
if KW(A_ThisHotkey,"U","200")=0 ; Ждать Отжатия последней активированной горячей клавиши 200 миллисекунд.
Return ; При отжатии ничего не делать
a++
ToolTip, % a
Return
; KW:
; Key - нужная нам кнопка
; State - ожидаемое положение кнопки (U - отжата, D - нажата)
; Delay - количество миллисекунд, которое будем ждать
;
; Если дождались - вернет 1
; Если не дождались - вернет 0
KW(Key,State,Delay) {
KeyWait, % key, % "T" Delay/1000 " " State
Return ErrorLevel
}
Esc::ExitApp
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться