Я эту проблему решить с помощью USB-устройства:драйвер для Windows HID для клавиатуры USB
- подключен к POS ПК (Windows POSReady 2009) есть USB-клавиатура и USB Dallas I-Button чтения
чтения USB подключен к Mobo USB шине, и показывает, как USB Composite устройства:
USB Composite Device 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 (2ст пример) USB \ VID_134B & PID_0206 & REV_0100 & MI_01
HID клавиатура HID \ VID_134B & PID_0206 & REV_0100 & MI_00
, когда я прочитал I-Button с читателем, код внутри кнопки добавляется в буфер клавиатуры (как это было напечатано с физической клавиатурой) и активное применение (которым имеет фокус клавиатуры) получить код
- мое приложение должно interract с кодами прочтенных устройством USB, однако я должен иметь фокус costantly на TextBox, чтобы получить код
- это не всегда возможно, специально с автоматическими MessageBox, которые занимают фокус (и ввод с клавиатуры) и могут создавать сбои.
- лучше всего иметь считыватель на последовательном порту или TCP/IP, но это единственный выбор мы (мы не можем изменить читатель)
Итак, моя идея заключается в ловушку входящей «нажатие клавиши» от чтения клавиатуры, избежать добавлений в системном буфере клавиатуры, и передать их в мое приложение через WM_USER, WM_COPYDATA, Socket или другие метод.
Таким образом, целью было бы написать драйвер, чтобы применить ТОЛЬКО к определенному USB HID-устройству (I-Button reader, но НЕ к настоящей клавиатуре ПК), которые блокируют нажатие клавиши и отправляют в приложение каким-то образом.
Я проверил «фильтр клавиатуры» Microsoft, но я могу блокировать только некоторые комбинации ключей, но это не моя цель.
Я думаю, что я должен создать обычай личного драйвера «kbdhid.sys» и/или «kbdcalss.sys» и применить ТОЛЬКО к моему USB HID Reader.
Может ли кто-нибудь указать мне правильное направление?
Большого спасибо