记录第二个键盘事件

Dan*_*ira 6 c c++ windows

我有自己的键盘和USB条形码扫描仪,就像第二个键盘一样.

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

这可能吗?

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

在此输入图像描述

谢谢,非常欢迎所有的建议.

Rem*_*eau 1

您可以使用原始输入 API在操作系统处理键盘事件之前监视它们。API 将告诉您哪个设备正在发送每个事件,因此您可以仅从扫描仪记录事件。

但是,原始输入 API 不允许您阻止输入,因此要阻止扫描仪的事件作为普通键盘事件进行处理,您需要设置SetWindowsHookEx()一个键盘挂钩来消除事件。

但是,SetWindowsHookEx()不会报告哪个设备正在发送每个事件,因此您必须手动协调两个 API。当原始输入检测到键盘事件时,根据事件来自的设备设置一个标志。当钩子检测到相应的事件时,检查标志,如果标志指示扫描仪设备,则消除该事件。

请参阅CodeProject 上的组合原始输入和键盘挂钩以选择性地阻止来自多个键盘的输入