【发布时间】:2012-10-25 15:47:19
【问题描述】:
我正在为条形码扫描仪制作“驱动程序”。
这种特殊的扫描仪基本上是一个 USB 键盘,每当扫描某些东西时都会产生击键。
我想找到一种方法来区分这些击键和正确的键盘发送的那些击键。不幸的是,唯一的区别是扫描器非常快速生成击键,在几分之一秒内完成一系列按键操作和按键操作。
我看到它的方式是我必须设置一个全局键盘挂钩来拦截所有输入,以某种方式存储它,等待一点点然后将这些击键进一步发送到挂钩链中,或者假设它们是扫描仪生成的东西并妥善处理。
但是,之前没有使用钩子的经验,我不确定正确的方法。我可以在其他线程中以 KeyboardProc() 以外的其他方法调用 CallNextHookEx() 来传递延迟的击键事件吗?还是我应该手动生成新的WM_KEYPRESS 消息?也许有更好的方法来处理这件事?
谢谢。
【问题讨论】:
-
这个和this question基本一样。不幸的是,答案只有一半。
-
这个答案应该可以解决你的问题:stackoverflow.com/a/3060668/886887
-
@HarryJohnston 不幸的是,应该存在我似乎需要支持的键盘/卡片扫描仪组合之类的东西;它注册为单个设备,但同时发送常规键盘输入和扫描代码作为无法区分的击键:(