【发布时间】:2013-01-14 22:16:01
【问题描述】:
我正在制作一个将自身挂接到目标应用程序的应用程序,当用户激活它时,它会阻止所有键盘和鼠标窗口消息到达目标应用程序的窗口进程。我的应用程序通过将传入的输入消息(例如 WM_MOUSEMOVE)转换为 WM_NULL 来实现这一点,这样窗口 proc 就不会知道发生了输入。
问题是当鼠标输入发生时,Windows 也会自动将WM_SETCURSOR 和WM_NCHITTEST 发送到窗口进程(例如,当应用程序调用PeekMessage 时)。这些消息不会发布到窗口的消息队列中,因此我无法将它们更改为 WM_NULL。
我最初通过子类化窗口 proc 并简单地忽略 WM_SETCURSOR 和 WM_NCHITTEST 来解决此问题,但子类化似乎与我所使用的某些应用程序存在兼容性问题。
我的问题是:如何防止WM_SETCURSOR 和WM_NCHITTEST 首先生成或如何防止它们到达应用程序的窗口过程。
【问题讨论】:
-
只是出于好奇,你为什么想要这样的东西?换句话说,你想达到什么目标,你觉得需要你付出这么大的努力?
标签: winapi