Нужна помощь в написании скрипта? Close

Вы можете задать любой вопрос по программе Autohotkey в нашей группе Вконтакте. Если решение требует более высокой квалификации- можно обратиться непосредственно ко мне.

ВконтактеГруппа Вконтакте Электронная почтаЭлектронная почта Личная страницаСимаков Яков ВК
home icon Все разделы
comunity icon Нужна помощь?

BlockInput -Autohotkey

Блокирует или разблокирует ввод с клавиатуры и мыши.

BlockInput, Mode

Параметры

Mode (режим) Режим 1: Одно из следующих слов:

On: Ввод с клавиатуры и мыши блокируется.

Off: Ввод разблокируется.

Режим 2: Этот режим работает независимо от двух других. Например, BlockInput On будет продолжать блокировать ввод до момента выполнения команды BlockInput Off, даже если одновременно с этим работает какая-то из нижеследующих команд.

Send: Ввод с клавиатуры и мыши игнорируется на то время, пока выполняются команды Send или SendRaw (только при режиме посылки SendEvent). Это не позволяет действиям пользователя прерывать поток нажатий, симулируемых скриптом. Когда Send завершает работу, ввод разблокируется (если до этого он не был блокирован через BlockInput On).

Mouse: Ввод с клавиатуры и мыши блокируется на время выполнения команд Click, MouseMove, MouseClick или MouseClickDrag (только для режима посылки SendEvent). Когда команда завершает работу, ввод разблокируется (если он не был до этого блокирован через BlockInput On).

SendAndMouse: Сочетание двух предыдущих команд.

Default: Отменяет действие команд BlockInput Send и BlockInput Mouse (но не влияет на работу команды BlockInput On).

Режим 3: Этот режим действует независимо от двух других. Например, если одновременно выполняются BlockInput On и BlockInput MouseMove, движения мыши будут заблокированы, пока не будут отменены обе эти команды.

MouseMove: Указатель мыши не будет реагировать на физические перемещения мыши пользователем (возможные исключения - приложения, использующие DirectInput). Когда в скрипте впервые выполняется эта команда, устанавливается хук мыши (если он уже не установлен). Кроме того, скрипт становится резидентным, что означает, что для его завершения требуется команда ExitApp. Хук мыши остаётся установленным до момента выполнения команд Suspend или Hotkey, после этого он удаляется, если не требуется для каких-либо горячих клавиш или строк автозамены (см. описание #Hotstring NoMouse).

MouseMoveOff: Разблокирует указатель мыши.

Примечания

Вместо BlockInput часто предпочтительнее использовать SendMode Input или SendMode Play, которые также не позволяют действиям пользователя прерывать нажатия клавиш и щелчки мыши, симулируемые скриптом, но которые при этом не отбрасывают то, что пользователь печатает во время посылки; его нажатия запоминаются и посылаются позже. Неиспользование BlockInput также устраняет необходимость принимать меры против залипания клавиш, как это описано в следующем абзаце.

Если BlockInput активируется в тот момент, когда пользователь удерживает нажатыми какие-то клавиши, эти клавиши могут "залипнуть" в нажатом состоянии. Этого можно избежать, если подождать отпускания клавиш перед применением блокировки, как показано в этом примере:

^!p:: KeyWait Control ; Ждать отпускания клавиши. Используйте одну команду ; KeyWait для каждого модификатора горячей клавиши. KeyWait Alt BlockInput On ; ... посылаются нажатия и щелчки мыши ... BlockInput Off return

Блокировка ввода автоматически отключается всякий раз, когда посылается событие, связанное с клавишей ALT (и включается после этого).

Ввод автоматически разблокируется, когда скрипт закрывается.

Пример

if A_OSType WIN32_WINDOWS ; Если ОС - не Windows 9x. BlockInput, on Run, notepad WinWaitActive, Безымянный - Блокнот Send, {F5} ; Вставляет время и дату. BlockInput, off