在Windows 7 32bit中拦截并忽略键盘事件

我的硬件有一个问题,有时会发送一个“keydown”,然后是“keyup”事件:

keydown:无LButton,OemClear 255

keyup:无LButton,OemClear 255

keydown:无LButton,OemClear 255

keyup:无LButton,OemClear 255

它是这样的,每隔1或2秒,永远在Windows中。

通常它不会影响大部分的应用程序,因为这个键是不可打印的。 我认为这是一个特殊的function键,就像一个媒体键或什么的。 它什么都不做。

但是,在一些应用程序,监听keydown和keyup,我得到意想不到的行为。

问题 :有没有办法在Windows中拦截这两个键盘事件(对于所有应用程序和Windows本身),并使操作系统忽略它们?

这对我来说真的很重要,如果你能想出任何解决办法,我会永远感激。

您可以编写一个使用RegisterHotKey的小应用程序,将该按键注册为系统范围的热键。 然后Windows会将该按键转换为WM_HOTKEY消息到您的应用程序窗口。

这会导致你的应用程序每秒钟运行一些代码,这并不是很理想,但也许比替代方案更好。

窗口句柄需要属于您的应用程序,但它不必是可见的或非常大的。 热键是全球性的,所以就像在键盘和其他应用程序之间安装钩子一样。