スパイ++キャプチャメッセージの詳細を使用します
主な用途今日はちょうど自分自身です。
そこには、ターゲットプログラムに直接メッセージを送信するために、次に自分自身のSendMessageかのPostMessage、メッセージを表示するSPY ++をも使用していました。しかし、本来の効果を持つものがある、今日はQTウィンドウが書かれて発行されたので、私は、メッセージが混乱し、それを行うことができるかどうかを確認したい++ SPYで捕獲しようとしていると思います。
ああ、そして最終的にはまだ動作しません。しかし、また、SPY ++は、特にこの記録では、特定のパラメータに対応するメッセージ文字列をキャプチャし、後で簡単に見つけること、困っている友達にも便利です理解しています。
それが繰り返されているので、私は、リストの一番上の3について話します。
第一条:<00001> 00130042 SのWM_SETCURSORのHWND:00130042 nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE
<00001>:SPY ++は、それが主に記録順で、メッセージ番号が捕捉されます。
00130042:これは、ターゲットウィンドウハンドルの六角あります。
S:ここで、最初の行が3行目はP.で、二行目はRであり、Sであります 彼らは一緒に言います。Sは、メッセージ送信のSendMessageの使用であり、Rが得られるのSendMessageを使用してメッセージを送信するための戻り値です。Pは、のPostMessageを使用して送信されるメッセージです。
WM_SETCURSOR:メッセージ値を送信、すなわちのSendMessageの2番目のパラメータ(のSendMessageのPostMessage同じパラメータ)。
ここからバック、それぞれ、第三のパラメータの値と、第四パラメータのSendMessageに、それらは固定値の異なる特定のメッセージに基づいて、割り当てられていません。
WM_SETCURSORメッセージの後の最初の値は、HWNDさ:00130042、これがハンドルで見ることができ、ハンドルは、ターゲットウィンドウです。同時に、SendMessage関数の3番目の引数があります。
そして、HWND:あり2つの00130042背後にあるデータ、および私たちの唯一のSendMessage最後のパラメータがあるので、二人は最後の引数の後ろのSendMessageデータです。低および高。
最初のメッセージSPY ++取り込まれ、同一のデータを得るために使用されるコードを送信し、それがあるべきです。
SendMessage(00130042、WM_SETCURSOR、00130042、HTCLIENT + WM_MOUSEMOVE * 65536)
あなたはちょうどあなたがラインで使用上記のコードのプログラミング言語を交換する必要があり、誰もが理解できるように、あなたが使用したい場合は、上記のコードは、私は、表現するために任意のプログラミング言語を使用していないことに注意してください。
その後、次のSPY ++のための第二。
<00002> 00130042 R WM_SETCURSOR fHaltProcessing:偽
この操作は、私たちを必要としませんした後、我々はSendMessage関数を使用して送信され、戻って同様の戻り値があるでしょう。
記事:<00003> 00130042 P WM_MOUSEMOVEのfwKeys:0000 XPOS:1088 YPOS:27
私たちは、直接ライン上のWM_MOUSEMOVE後の事を言って、WM_MOUSEMOVEは上記を含める前に、最初に見えます。
WM_MOUSEMOVEがのPostMessage(?のPostMessageの代わりのSendMessageそれがトップに来るときはなぜ存在している)の2番目のパラメータであるため、0000:WM_MOUSEMOVEはfwKeysを追いました
だから、このfwKeys:背後に、その値を行に:私たちは見て、fwKeysの前に表示されていない、0000のPostMessageは、第三パラメータであり、その値は0です。
fwKeys:0000は、第三引数で、それはそれの後に第四パラメータです。
同様に、低および高と低二つのデータがあります。
最後に、コードで実装この取得されたメッセージは次のとおりです。
PostMessage(00130042、WM_MOUSEMOVE、0,1088 + 27×65536)