有带2个USB键盘的PC键盘KeyboardA和KeyboardB

User1在KeyboardA上工作。

有时User2在KeyboardB上键入。

任务:KeyboardB的所有输入都重定向到文件。

如果我使用SetWindowsHookEx,则可以挂起输入和停止消息,但是无法检测KeyboardA或KeyboardB(有方法检测键盘是什么吗?)

如果我使用RegisterRawInputDevices,则会检测到KeyboardA或KeyboardB,但是无法停止消息,并且无法从KeyboardB转换为User1接口(interface)(是否有停止消息的方法?)。

我可能需要另一种方式来将数据从键盘直接定向到特定位置吗?

最佳答案

我的解决方案:

  • 用SetWindowsHookEx阻止所有输入
  • 在RawInput中确定键盘
  • 如果它的KeyboardA在 Activity 窗口中重新发送输入
  • 如果它的KeyboardB重定向输入
  • 对于项目1中的禁用块,我检查了LLKHF_INJECTED上的KeyboardHookStruct.Flags而不是
    阻止

  • Detalis

    10-08 08:13