2016-02-15 182 views
0

我有这个问题,一个USB设备来解决:为USB键盘的Windows HID设备驱动程序

  • 连接到POS PC(视窗POSReady 2009)有一个USB键盘和USB达拉斯I-按钮读卡器
  • USB读卡器连接到主板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输入装置(2ST实例)USB \ VID_134B & PID_0206 & REV_0100 & MI_01

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

  • ,当我读I-按钮与读取器,该按钮内的代码被添加到键盘缓冲区(因为它是与物理键盘键入)和活动的应用程序(至极具有键盘焦点)收到代码

  • 我的申请必须由USB设备readed码interract,但是我必须专注于costantly一个TextBox接收代码
  • 这并不总是可能的,特别是无人值守的MessageBoxes,这需要重点(和键盘输入),并可以创建故障
  • 最好应该有一个阅读器串口或TCP/IP,但这是唯一的选择我们从读者键盘(我们不能改变阅读器)

所以,我的想法是陷阱来袭“按键”,避免系统键盘缓冲区追加中,并传递给通过WM_USER,WM_COPYDATA,插座或其他我的应用程序方法。

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

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

我想我应该创建一个个人“kbdhid.sys”和/或“kbdcalss.sys”驱动程序的自定义,并只适用于我的USB HID读取器。

难道有人指出我正确的方向吗?

非常感谢

回答

0

设置你的读者发送代码 监控前缀键盘阙,有你的应用程序弹出因此它接收键盘输入之前发送的前缀。

然而,许多读者只能设置为发送一个控制代码,如STX - 女巫是control_B - 并由Windows使用。