簡體   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