记录第二个键盘事件

问题描述:

我有我自己的键盘和USB条形码扫描仪,它的工作方式与第二个键盘相同。记录第二个键盘事件

我想使用主键盘来控制计算机(通常是这样)和第二个键盘(实际上是条形码扫描器)将所有输入记录到文件中。

这可能吗?

重点是,我可以在互联网上,word,excel或其他。我将使用主键盘写入该进程,而在后台,第二个键盘(条形码扫描器)可以同时写入,但是可以写入日志文件。我现在可以使用的程序永远不会知道第二个键盘输入。

enter image description here

感谢,所有的建议都非常欢迎。

+0

我推荐学习Windows设备驱动程序。这会告诉你如何添加第二个键盘的钩子。 –

您可以使用Raw Input API在OS处理它们之前监视键盘事件。该API会告诉你哪个设备正在发送每个事件,因此您可以只从扫描仪记录事件。

但是,原始输入API不允许您阻止输入,因此要阻止扫描程序的事件作为正常的键盘事件进行处理,您需要使用SetWindowsHookEx()来设置用于解除事件的键盘挂钩。

但是,SetWindowsHookEx()不报告哪个设备发送每个事件,因此您将不得不手动协调这两个API。原始输入检测到键盘事件时,根据事件来自哪个设备设置标志。当挂钩检测到相应事件时,检查标志并在标志指示扫描仪设备时关闭事件。

请参阅CodeProject上的Combining Raw Input and keyboard Hook to selectively block input from multiple keyboards