2009-05-28 5 views
2

System.Windows.Forms.Application.AddMessageFilterの機能を使用したいのですが、ターゲットアプリケーションでWindowsフォームを使用しません。この機能は、ルーティングされるWindowsメッセージを監視するフィルタを追加します。誰かがこの仕組みが分かっていれば、同じ機能を実行するための自分のコードを書いても構いません。WindowsフォームのないAddMessageFilter?

SetWindowLong with GWL_WNDPROCは、受信したメッセージにのみ影響し、送信されたメッセージに影響を与えたいと思います。 System.Windows.Forms.Applicationは静的ですが、例外をスローするIMessageFilterを使用したAddMessageFilterの呼び出しは機能しません。

答えて

2

メッセージフックを使用して、目的を達成することができます。実際、メッセージハンドルはIMessageFilterよりはるかに強力です。ウィンドウハンドルに送信されるウィンドウメッセージ以外の種類のフックがあるためです。たとえば、システム全体のキー押下やマウスの移動をフックすることができます。

詳細については、こちらの記事を参照してください

http://msdn.microsoft.com/en-us/magazine/cc188966.aspx

関連する問題