Тема: AHK: Заблокировать нажатие клавиши более двух раз подряд
Необходимо заблокировать нажатие клавиши более двух раз подряд. Как это реализовать?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Необходимо заблокировать нажатие клавиши более двух раз подряд. Как это реализовать?
Нужно проверять время между текущим и предыдущим нажатием клавиши. И включать / обнулять счётчик нажатий.
Такой скрипт где-то видел, блокирует все клавиши на 15 секунд, но можно самому поставить время.
OnExit, Exit
hHookKeybd := DllCall("SetWindowsHookEx"
, Int, WH_KEYBOARD_LL := 13
, Ptr, RegisterCallback("LowLevelKeyboardProc", "Fast")
, Ptr, DllCall("GetModuleHandle", UInt, 0, Ptr)
, UInt, 0, Ptr)
Sleep 15000
DllCall("UnhookWindowsHookEx", Ptr, hHookKeybd), hHookKeybd := ""
Return
Exit:
(hHookKeybd && DllCall("UnhookWindowsHookEx", Ptr, hHookKeybd))
ExitApp
LowLevelKeyboardProc(nCode, wParam, lParam)
{
Return 1
}
svoboden, разве в задаче было указано заблокировать клавиатуру?
А клавиши - это ни клавиатура, что ли?
Был задан вопрос:
заблокировать нажатие клавиши
а не всех клавиш.
Ну и даже если необходимо заблокировать клавиатуру, то чем не устраивает blockinput?
Malcev, ну, если blockinput работает, можно им, но, по-моему, он плохо работает.
Подскажите, пожалуйста, как реализовать описанное в шапке? Поправка в том, чтобы посредством простого редактирования можно было отключать каждое последующее нажатие после первого, второго или третьего нажатия. Например, не отправлять более одного раза подряд нажатие клавиши f3. Нажатие любой другой клавиши (за исключением некоторых заданных клавиш) сбрасывает счетчик нажатий f3.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться