BlockInput
提供: AutoHotkey Wiki
実行制御 | GUI表示 | 演算・変数 | メモリ・DLL操作 | 文字列操作 |
キーボード | マウス | シェル | ウィンドウ | ウィンドウグループ
ステータスバー | コントロール | サウンド | ファイル | INIファイル |
レジストリ | 環境変数 | AutoHotkey | その他 | 設定関係 | オブジェクト
BlockInput[編集]
キーボードやマウスなどからの入力を無効化・無効化解除する。
BlockInput, Mode
Parameters[編集]
引数名 | 説明 | |
---|---|---|
Mode | On | すべての入力を無効化する。 |
Off | 入力を有効にする。 | |
Send | SendやSendRawコマンドを実行する際にに自動的に入力ブロックが有効化されるようにする。(2000/XP以外では無意味) | |
Mouse | MouseMove,MouseClick,MouseClickDragコマンド実行時に自動的に入力ブロックが有効化されるようにする。(2000/XP以外では無意味) | |
SendAndMouse | SendとMouseを同時に設定。 | |
Default | SendとMouseの設定をOFFにする。 | |
MouseMove | マウスカーソルを移動できなくする。 | |
MouseMoveOff | BlockInput,MouseMove を解除する。
|
Remarks[編集]
このコマンドを使用すれば、AutoHotkeyによる操作自動化の際にユーザーの入力が混ざることによって誤操作が発生することを防げる。
入力を無効化している間は、AutoHotkeyのホットキーも動作しなくなる。
ただし、一部のHookを利用したホットキーは動作する。
このコマンドを実行する瞬間に、修飾キーを押し下げており、入力が無効化されている間に放されると、その修飾キーが押し下げられたままになってしまう。
これを防ぐには、KeyWaitコマンドで修飾キーが放されるのを待ってからBlockInput,On
を実行すればよい。
BlockInput,MouseMove
が実行されると、マウスフックが有効化される。
それ以降は、スクリプトが常駐状態になり、ExitAppコマンドを実行するまで終了しなくなる。
SuspendコマンドかHotkeyコマンドが実行されるとき、マウスフックが必要なくなっていれば解除される。
スクリプト終了時には自動的に入力は有効に戻される
APIの仕様によりCtrl+Alt+Delを実行すると、入力は有効に戻る。
このコマンドは、OSによって効果に違いがある。
OS | 効果 |
---|---|
Windows95 | 効果なし |
WindowsNT4(SP6以前) | 効果なし |
Windows98/Me | ユーザーの入力とともに、AutoHotkeyが生成する入力(Send,SendRaw,MouseMove,MouseClick,MouseClickDragなど)も無効化される |
WindowsNT4(SP6)/2000/XP | ユーザーの入力は無効化されるが、AutoHotekyが生成する入力は有効。 |
Example(s)[編集]
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