我正在为条码扫描器制作“驱动程序”。延迟的全局键盘钩
这个特定的扫描仪基本上是一个USB键盘,只要扫描了某物就会产生键击。
我想找到一种方法来区分这些击键与正确键盘发送的击键。不幸的是,唯一不同的是,扫描仪在几分之一秒内快速地产生键盘输入和密钥。
我看到它的方式是我必须建立一个全局键盘钩子,拦截所有输入,以某种方式存储它,等待一小会儿,然后将这些键击发送到钩子链或者假设它们是扫描器生成并适当地处理它们。
但是,由于没有使用钩子的经验,我不确定正确的做法。我可以在KeyboardProc()
之外的其他某个线程中使用CallNextHookEx()
来传递延迟按键事件吗?或者我应该手动生成一个新的WM_KEYPRESS
消息?也许有更好的方法去做这件事?
谢谢。
这与[此问题]基本相同(http://stackoverflow.com/questions/12885897/block-keystrokes-from-a-specific-keyboard)。不幸的是,只有一半的答案。 – arx
这个答案应该可以解决你的问题:http://stackoverflow.com/a/3060668/886887 –
@HarryJohnston它应该,不幸的是存在这样的事情,我似乎需要支持键盘/卡扫描仪组合;它注册为一个单一的设备,但同时发送常规键盘输入和扫描代码作为难以区分的击键: – obamator