1

一部のメッセージタイプはウィンドウプロシージャに直接送信され、他のタイプはスレッドのメッセージキューに送信されることを認識していますが、メッセージが送信または投稿されるかどうかを判断する方法が見つかりません。

MSDNは半分役に立ちます。それは何が起こっているのかを説明しましたが、それが与える例はおそらく網羅的ではありません。

送信されたメッセージと投稿されたメッセージの明確なリスト、またはメッセージのタイプを決定する方法はありますか?

4

3 に答える 3

3

InSendMessageまたはを使用して、関数の呼び出しによって送信されたメッセージを処理しているかどうInSendMessageExかを判別します。SendMessage

于 2009-05-10T08:19:44.910 に答える
1

また、一部のメッセージは投稿も送信もされません。これは、WM_PAINT、WM_TIMER、およびその他のいくつかの場合です。ポストされたメッセージのキューが空の場合、GetMessage によって単に返されます。

どのアプリケーションをフックしようとしているのかはわかりませんが、そのような質問をしなければならない場合は、少し怖いです. 開発者にとって、ユーザーから報告されたクラッシュに時間を費やし、その原因が不正なコードを挿入している他のアプリケーションにあることが判明することほどイライラすることはありません。慎重に踏んでください!

また、Spy++ (Visual Studio に同梱されているツール) は、特定のライブ Windows アプリでどのメッセージが投稿/送信/受信されたかを示します。

于 2009-05-10T19:35:49.990 に答える
0

各メッセージを文書化したMSDNページは、このための信頼できるソースと見なす必要があります。

WM_LBUTTONDOWNメッセージは次の場合に投稿されます...

WM_SETFOCUSメッセージは次の後にウィンドウに送信されます...

于 2009-05-10T08:00:41.617 に答える