Windows完全redirect键盘input

有2个USB键盘KeyboardA和KeyboardB的PC

用户1在KeyboardA上工作。

键盘B上有一段时间User2键入。

任务:从KeyboardB的所有inputredirect到文件。

如果我使用SetWindowsHookEx我可以挂钩input和停止消息,但无法检测到KeyboardA或KeyboardB(有办法检测键盘?)

如果我使用RegisterRawInputDevices,我检测到KeyboardA或KeyboardB,但不能停止消息和input从KeyboardB转换到User1接口(有办法停止消息?)。

可能是我需要从键盘到特定的地方的数据清理方法吗?

我的解决方案

  1. 用SetWindowsHookEx阻塞所有输入

  2. 在RawInput中确定键盘

  3. 如果KeyboardA在活动窗口中重新输入

  4. 如果它的KeyboardB重定向输入

  5. 对于项目1中的禁用块,我检查LLKHF_INJECTED上的KeyboardHookStruct.Flags,而不是阻止

Detalis