キーボードやマウスなどからの入力を無効化・無効化解除する
BlockInput, Mode
引数名 | 説明 |
---|---|
Mode |
|
このコマンドを使用すれば、AutoHotkeyによる操作自動化の際にユーザーの入力が混ざることによって誤操作が発生することを防げる。
入力を無効化している間は、AutoHotkeyのホットキーも動作しなくなる。
ただし、一部のHookを利用したホットキーは動作する。
このコマンドを実行する瞬間に、修飾キーを押し下げており、入力が無効化されている間に放されると、その修飾キーが押し下げられたままになってしまう。
これを防ぐには、KeyWaitコマンドで修飾キーが放されるのを待ってからBlockInput,On
を実行すればよい。
「BlockInput,MouseMove」が実行されると、マウスフックが有効化される。
それ以降は、スクリプトが常駐状態になり、ExitAppコマンドを実行するまで終了しなくなる。
SusupendコマンドかHotkeyコマンドが実行されるとき、マウスフックが必要なくなっていれば解除される。
スクリプト終了時には自動的に入力は有効に戻される
APIの仕様によりCtrl+Alt+Delを実行すると、入力は有効に戻る。
このコマンドは、OSによって効果に違いがある。
OS | 効果 |
---|---|
Windows95 | 効果なし |
WindowsNT4(SP6以前) | 効果なし |
Windows98/Me | ユーザーの入力とともに、AutoHotkeyが生成する入力(Send,SendRaw,MouseMove,MouseClick,MouseClickDragなど)も無効化される |
WindowsNT4(SP6)/2000/XP | ユーザーの入力は無効化されるが、AutoHotekyが生成する入力は有効。 |
if A_OSVersion <> WIN_98 if A_OSVersion <> WIN_ME BlockInput, on Run, notepad WinWaitActive, Untitled - Notepad Send, {F5} ; pastes time and date BlockInput, off