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 回答