2017-06-06 14 views
0

現在、SendInput(MOUSEEVENTF_MOVE)を使用してマウスの動きをシミュレートします。 SendInputは、処理される前に新しいマウスイベントをスレッド入力キューに追加します。マウス入力イベントの追跡

特定のイベントが実際に処理されたかどうかを追跡/確認できますか?

WM_MOUSEMOVEWndProcにトラッキングすることは、ユーザが同時に擬似的にマウスの動きを出すことは可能であるため、オプションではありません。

答えて

0

特定のイベントが実際に処理されたかどうかを追跡/確認できますか?一般的に

:いいえ

SendInputが処理される前に、スレッドの入力キューに新しいマウスイベントを追加します。

SendInputは、入力イベントをハードウェア入力キューに配置します。ハードウェア入力キューでは、未処理の入力スレッドによって取得され、それぞれのスレッドの入力キューに送出されます。ユーザーが同時に非シミュレートされたマウスの動きを発行することが可能であるためWndProcWM_MOUSEMOVEを追跡

にはオプションではありません。

正しい。ただし、をインストールすることができます。注入された入力を識別することができます。注入された入力は、MSLLHOOKSTRUCT構造体のフラグのメンバーに設定されたLLMHF_INJECTEDまたはLLMHF_LOWER_IL_INJECTEDフラグの1つを持っています。あなたは、アプリケーションのウィンドウプロシージャのマウスメッセージハンドラに注入された入力を識別することができます

脆性ソリューションはMOUSEINPUT構造を介して特定dwExtraInfo値を渡すことです。この値は、メッセージハンドラ内でGetMessageExtraInfoを呼び出して照会できます。システムはこれらの値も使用するため、信頼性がありません。アプリケーションが使用できる値の範囲はなく、システムによって使用される値と衝突しないことが保証されています。


低レベルのマウスのフックを実行すると、入力イベントは、ハードウェア、入力キューからデキューされた後。イベントは、アプリケーションによって処理されていないか、またはその時点でそれぞれのスレッドの入力キューに配置されていません。

関連する問題