1

Тема: AHK: Заблокировать нажатие клавиши более двух раз подряд

Необходимо заблокировать нажатие клавиши более двух раз подряд. Как это реализовать?

2

Re: AHK: Заблокировать нажатие клавиши более двух раз подряд

Нужно проверять время между текущим и предыдущим нажатием клавиши. И включать / обнулять счётчик нажатий.

3 (изменено: svoboden, 2016-11-28 00:11:39)

Re: AHK: Заблокировать нажатие клавиши более двух раз подряд

Такой скрипт где-то видел, блокирует все клавиши на 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
}

4

Re: AHK: Заблокировать нажатие клавиши более двух раз подряд

svoboden, разве в задаче было указано заблокировать клавиатуру?

5 (изменено: svoboden, 2017-04-21 02:08:19)

Re: AHK: Заблокировать нажатие клавиши более двух раз подряд

А клавиши - это ни клавиатура, что ли?

6 (изменено: Malcev, 2016-11-27 23:48:01)

Re: AHK: Заблокировать нажатие клавиши более двух раз подряд

Был задан вопрос:

заблокировать нажатие клавиши

а не всех клавиш.
Ну и даже если необходимо заблокировать клавиатуру, то чем не устраивает blockinput?

7 (изменено: svoboden, 2017-04-21 02:00:58)

Re: AHK: Заблокировать нажатие клавиши более двух раз подряд

Malcev, ну, если blockinput работает, можно им, но, по-моему, он плохо работает.

8

Re: AHK: Заблокировать нажатие клавиши более двух раз подряд

Подскажите, пожалуйста, как реализовать описанное в шапке? Поправка в том, чтобы посредством простого редактирования можно было отключать каждое последующее нажатие после первого, второго или третьего нажатия. Например, не отправлять более одного раза подряд нажатие клавиши f3. Нажатие любой другой клавиши (за исключением некоторых заданных клавиш) сбрасывает счетчик нажатий f3.