マウス ジェスチャを監視する DLL で、このグローバル マウス フックを設定しています。
すべてが完全に機能しますが、WH_MOUSE_LL のフック セットは低レベルのフックであり、外部の注入可能な DLL にある必要はありません。
より適切なものに切り替えると、WH_MOUSEマウスフックに切り替えると、すべてが崩壊します。メイン アプリケーション (フックをインストールするアプリケーション) の外側をクリックすると、フックが破損します - ::UnhookWindowsHookEx が失敗します。
私はこの男が専門家の交換で言っているのを見つけただけです:
「少なくとも Windows XP + SVP2 では、WH_MOUSE はグローバルにはなりません。代わりに WH_MOUSE_LL を使用する必要があります。」
フックを正しくセットアップします。共有データ セクションを使用する DLL で、フック プロシージャからメッセージを投稿し、送信しません。
なぜこれが変わったのですか?そして、なぜ文書化されていないのですか?誰もこれに遭遇しましたか?ありがとう!
ところで: 私は人気のあるStrokeItアプリケーションを少しリバース エンジニアリングしました。このアプリケーションは、WH_GETMESSAGE フックと WH_MOUSE フックの組み合わせを使用し、XP/Vista でも動作します...