1

これらのメッセージをアプリケーションに送信したい:

<00010> 00830BB8 S WM_GETDLGCODE
<00011> 00830BB8 R WM_GETDLGCODE fuDlgCode:DLGC_WANTARROWS
<00012> 00830BB8 P WM_PAINT hdc:00000000
<00013> 00830BB8 S WM_ERASEBKGND hdc:DD012964
<00014> 00830BB8 R WM_ERASEBKGND fErased:True
<00015> 00830BB8 P WM_TIMER wTimerID:1 tmprc:00000000
<00016> 00830BB8 S WM_GETDLGCODE
<00017> 00830BB8 R WM_GETDLGCODE fuDlgCode:DLGC_WANTARROWS
<00018> 00830BB8 S WM_GETDLGCODE
<00019> 00830BB8 R WM_GETDLGCODE fuDlgCode:DLGC_WANTARROWS
<00020> 00830BB8 P WM_PAINT hdc:00000000
<00021> 00830BB8 S WM_ERASEBKGND hdc:7601294E
<00022> 00830BB8 R WM_ERASEBKGND fErased:True

これらは Spy++ のものです。C# を使用して、SendMessage/PostMessage 関数を使用して送信するにはどうすればよいですか?

編集..返信ありがとうございます!私は私の問題を解決しました、ありがとう!

4

2 に答える 2

1

アプリケーションにキーを送信しようとしましたが、Spy++ を使用して、メッセージがこれに送信されることを確認しました。具体的には、矢印キーをアプリケーションに送信したいと考えていました。Spy++ から、上記のメッセージが送信されていることがわかりました。すべてを試した後、アプリケーションに以下のメッセージを送信しました。

PostMessage(handle, WM_KEYDOWN, (int)Keys.Down, 0x00140001);
PostMessage(handle, WM_KEYUP, (int)Keys.Down, 0xC0140001);

正常に動作するようになりました!みんなありがとう!

于 2012-02-03T08:40:18.203 に答える
0

ウィンドウの描画に関するメッセージは送信できません。システムのみがそれらを送信できます。再描画を強制する必要がある場合は、InvalidateRect を呼び出すだけです。

おそらく正常に投稿できるタイマー メッセージ。

WM_GETDLGCODE メッセージには副作用がないため、おそらく送信する必要はありません。

于 2012-02-02T18:00:54.620 に答える