BlockInput

提供: AutoHotkey Wiki
移動: 案内検索

実行制御 | GUI表示 | 演算・変数 | メモリ・DLL操作 | 文字列操作 | キーボード | マウス | シェル | ウィンドウ | ウィンドウグループ
ステータスバー | コントロール | サウンド | ファイル | INIファイル | レジストリ | 環境変数 | AutoHotkey | その他 | 設定関係 | オブジェクト

BlockInput[編集]

キーボードやマウスなどからの入力を無効化・無効化解除する。

BlockInput, Mode

Parameters[編集]

引数名 説明
Mode On すべての入力を無効化する。
Off 入力を有効にする。
Send SendSendRawコマンドを実行する際にに自動的に入力ブロックが有効化されるようにする。(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