【问题标题】:Windows HID device driver for USB KeyboardUSB 键盘的 Windows HID 设备驱动程序
【发布时间】:2016-05-26 07:17:49
【问题描述】:

我想用 USB 设备解决这个问题:

  • 连接到 POS PC (Windows POSReady 2009) 有一个 USB 键盘和一个 USB Dallas I-Button 读卡器
  • USB Reader 连接到 MoBo USB 总线,并显示为 USB 复合设备:

    USB 复合设备 USB\VID_134B&PID_0206&REV_0100

    兼容的 HID 设备 HID\VID_134B&PID_0206&REV_0100&MI_01

    USB 输入设备(第一个实例)USB\VID_134B&PID_0206&REV_0100&MI_00

    USB 输入设备(第二个实例)USB\VID_134B&PID_0206&REV_0100&MI_01

    HID 键盘 HID\VID_134B&PID_0206&REV_0100&MI_00

  • 当我使用阅读器读取 I-Button 时,按钮内的代码被添加到键盘缓冲区(因为它是使用物理键盘键入的),并且活动应用程序(具有键盘焦点)接收代码

  • 我的应用程序必须与 USB 设备读取的代码交互,但是我必须将注意力集中在 TextBox 上才能接收代码
  • 这并不总是可行的,尤其是无人看管的 MessageBox,它会获得焦点(和键盘输入)并可能造成故障
  • 最好的办法是在串行端口或 TCP/IP 上安装阅读器,但这是我们唯一的选择(我们无法更换阅读器)

所以,我的想法是捕获来自阅读器键盘的传入“按键”,避免附加到系统键盘缓冲区中,并通过 WM_USER、WM_COPYDATA、Socket 或其他方法将它们传递给我的应用程序。

因此,目标是编写一个驱动程序,仅适用于特定的 USB HID 设备(I-Button 阅读器,但不适用于真正的 PC 键盘),这些设备会阻止按键并以某种方式发送到应用程序。

我检查了“键盘过滤器”微软的方式,但我只能阻止一些键组合,但这不是我的目标。

我认为我应该创建一个自定义的个人“kbdhid.sys”和/或“kbdcalss.sys”驱动程序并仅应用于我的 USB HID 阅读器。

有人能指出正确的方向吗?

非常感谢

【问题讨论】:

    标签: windows keyboard usb hid wdk


    【解决方案1】:

    将您的阅读器设置为在发送代码之前发送前缀 监视键盘 que 的前缀并弹出您的应用程序,以便它接收键盘输入。

    但是,许多阅读器只能设置为发送控制代码,如 STX - 女巫是 control_B - 并由 windows 使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-01
      • 1970-01-01
      • 2010-12-15
      • 2015-06-04
      • 1970-01-01
      • 2020-02-29
      • 2013-11-24
      相关资源
      最近更新 更多