2009-06-08 23 views
0

我想重複發送Windows消息到我的winforms應用程序。 現在,我有類實現「IMessageFilter」將選定的消息(WM _KEYDOWN,WM _LBUTTONDOWN等)保存到列表中。在Winforms中重複Windows消息

在「Pause/Break」鍵上覆制消息列表,清除原始列表並重新發送消息。

在我的測試項目中,只有一個窗體有一個menuitem,一個選項卡和一個richtextbox。在保存和重複消息時,控件的hWnd是相同的。

所有的工作正常,但發送消息沒有efect:/。

示例代碼:

[System.Runtime.InteropServices.DllImport("user32")] 
public static extern int SendMessage(IntPtr hwnd, int msg, IntPtr wparam, IntPtr lparam); 

// ... in some method ... 
SendMessage(msg.HWnd, msg.Msg, msg.WParam, msg.LParam); 

它看起來太容易了,但不知道在哪裏能問題。

回答

1

您是否仍然應用消息過濾器?這不會干擾發送消息嗎?其他可能性可能是該消息不應該發送,而是發佈。或者,您可能必須從目標窗口的正確線程發送消息。

+0

MessageFilter始終返回「false」,因此實際上沒有消息被過濾。但我嘗試使用PostMessage而不是SendMessage,謝謝。 – TcKs 2009-06-08 08:28:25