繁体   English   中英

如何使用SendMessage / PostMessage函数?

[英]How to use the SendMessage/PostMessage functions?

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

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

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

我试图将密钥发送到应用程序,然后我使用Spy ++来查看消息。 具体来说,我想向应用程序发送箭头键。 从Spy ++,我看到了上面的消息。 在尝试了所有内容之后,我向应用程序发送了以下消息:

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

现在可以正常使用! 多谢你们!

您无法发送与绘制窗口有关的消息。 只有系统可以发送它们。 如果需要强制重画,则只需调用InvalidateRect。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM