2009-06-08 61 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