C# 在Winforms中重复windows消息

C# 在Winforms中重复windows消息,c#,.net,windows,interop,messaging,C#,.net,Windows,Interop,Messaging,我想向我的winforms应用程序重复发送windows消息。 现在,我有一个实现“IMessageFilter”的类,它将所选消息(WM _KEYDOWN、WM _LBUTTONDOWN等)保存到列表中 在“暂停/中断”键上,我复制消息列表,清除原始列表,然后重新发送消息 在我的测试项目中,只有一个表单,有一个菜单项、一个选项卡和一个richtextbox。在保存和重复消息期间,控件的hWnd相同 所有这些都可以正常工作,但发送消息没有效果:/ 示例代码: [System.Runtime.In

我想向我的winforms应用程序重复发送windows消息。 现在,我有一个实现“IMessageFilter”的类,它将所选消息(WM _KEYDOWN、WM _LBUTTONDOWN等)保存到列表中

在“暂停/中断”键上,我复制消息列表,清除原始列表,然后重新发送消息

在我的测试项目中,只有一个表单,有一个菜单项、一个选项卡和一个richtextbox。在保存和重复消息期间,控件的hWnd相同

所有这些都可以正常工作,但发送消息没有效果:/

示例代码:

[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 );

看起来太简单了,但不知道哪里会出问题。

您是否仍应用了消息筛选器?这不会影响信息的发送吗?另一种可能是,相关信息不应发送,而应发布。或者,您可能必须从目标窗口的正确线程发送消息。

MessageFilter始终返回“false”,因此实际上不会过滤任何消息。但是我试着用PostMessage代替SendMessage,谢谢。PostMessage是正确的提示。现在看起来不错。谢谢