印刷用ページ      送信     
クリックして評価とフィードバックをお寄せください
MSDN
MSDN ライブラリ
Win32 および COM 開発
SDK ドキュメント
ユーザー入力
キーボード入力
リファレンス
関数
 BlockInput 関数
プラットフォーム 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

© 2008 Microsoft Corporation.All rights reserved. 使用条件  |  商標  |  プライバシー
Page view tracker