如何使用SendMessage/PostMessage函数

本文关键字:PostMessage 函数 SendMessage 何使用 | 更新日期: 2023-09-27 18:22:30

我想将这些消息发送到应用程序:

<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函数进行发送?

编辑。。谢谢你们的回复!我解决了我的问题,再次感谢!

如何使用SendMessage/PostMessage函数

我试图向应用程序发送密钥,并使用Spy++查看消息。具体来说,我想向应用程序发送箭头键。从间谍++,我看到发送了上述消息。在我尝试了所有东西之后,我在应用程序中发送了以下消息:

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

现在工作正常!谢谢大家!

您不能发送与绘制窗口相关的消息。只有系统才能发送它们。如果需要强制重新绘制,只需调用InvalidateRect即可。

您可能会成功发布计时器消息。

您可能不需要发送WM_GETDLGCODE消息,因为它们没有副作用。