我想使用 System.Windows.Forms.Application.AddMessageFilter 的功能,但我的目标应用程序不使用 Windows 窗体。此功能添加了一个筛选器来监视 Windows 消息的路由。如果有人知道这是如何工作的,我不会介意编写自己的代码来执行相同的功能。
带有 GWL_WNDPROC 的 SetWindowLong 只影响接收到的消息,我想影响发送的消息。 System.Windows.Forms.Application 是静态的,但使用引发异常的 IMessageFilter 调用 AddMessageFilter 不起作用。
最佳答案
您可以使用消息 Hook 来实现您想要的。事实上,消息 Hook 比 IMessageFilter 强大得多,因为除了发送到窗口句柄的窗口消息之外,还有其他种类的 Hook 。例如,您可以 Hook 系统范围内的按键或鼠标移动。
有关详细信息,请参阅本文
关于windows - 没有 Windows 窗体的 AddMessageFilter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/919301/