2016-02-15 178 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使用。