プラットフォーム SDK
BlockInput
キーボードおよびマウス入力イベントをブロックし、アプリケーションに到達しないようにします。
|
BOOL BlockInput(
BOOL fBlock
); |
Parmeters
- fBlock
- 関数の目的を指定します。このパラメータが TRUE の場合、キーボードおよびマウス入力イベントはブロックされます。このパラメータが FALSE の場合、キーボードおよびマウスイベントはブロックされません。入力のブロックを解除できるスレッドは、その入力をブロックしたスレッドだけなので注意してください。
戻り値
関数が成功すると、0 以外の値が返ります。
入力がすでにブロックされている場合は、0 が返ります。拡張エラー情報を取得するには、GetLastError 関数を使います。
解説
この関数は、非同期のキーボード入力状態テーブルには影響しません。つまり、入力がブロック中であっても、SendInput 関数を呼び出すと、非同期キーボード入力状態テーブルは変更されます。
次の場合、入力のブロックは解除されます。
- 入力をブロックしているスレッドが予期せずに終了し、fBlock パラメータを FALSE にセットして BlockInput 関数を呼び出さなかった場合。この場合、システムは入力を適切にクリーンアップし、再び使用可能にします。
- システムが[プログラムの強制終了]ダイアログボックスを表示した場合。このエラーはスレッドが失敗するか、またはユーザーが ctrl+alt+del キーを押した場合に発生します。
- システムが[ハードシステムエラー]モーダルメッセージボックスを呼び出した場合。
このような場合、ソフトウェアがブロックした入力はシステムが解放します。後の例のように、システム上重要なダイアログボックスはシステムモーダルであるため、ユーザーがダイアログボックスを閉じるまで、ブロックを行ったスレッドは実行を再開しません。
対応情報
Windows NT/2000:Windows NT 4.0 SP3 以降
Windows:Windows 98
ヘッダー:winable.h 内で宣言
インポートライブラリ:user32.lib を使用
参照
SendInput