Как симулировать физический ввод с клавиатуры - PullRequest
0 голосов
/ 17 октября 2019

Я работаю с проектом C # Winforms, который читает с нескольких указанных сканеров штрих-кода (приложение должно отделить данные от сканера, чтобы иметь правильные действия)

Я использовал необработанный ввод для фильтрации по идентификатору устройства ивсе работает нормально.

Теперь я хочу разработать тестовое приложение, которое имитирует ввод со сканера (клавиатуры) (для имитации повседневной работы)

Я пробовал с некоторыми статьями, которые говорят мне использовать WindowsAPI, такие как SendInput, SendMessage ... но он не содержит реального идентификатора устройства (идентификатора физического устройства), поэтому мое тестовое приложение не распознало эти входные данные.

Идентификатор устройства Hid выглядит следующим образом: \ ?? \ HID# Vid_0536 & Pid_01c1 & MI_01 # 9 & 25ca5370 & 0 & 0000 # {4d1e55b2-f16f-11cf-88cb-001111000030}

Есть ли способ имитировать физическое устройство ввода с использованием C # и Winforms? или отправить ключ в активное приложение с физическим (или поддельным) идентификатором устройства?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 26 октября 2019

Я решил эту проблему, создав поддельную клавиатуру, установив идентификатор, имя и т. Д. В ничто. В обработчике необработанного ввода я проверяю нажатие клавиши, если нет идентификатора оборудования, предположим, что это из поддельного идентификатора идобавьте поддельный идентификатор устройства к этому сообщению, теперь симулятор работает. Спасибо за поддержку.

0 голосов
/ 17 октября 2019

Работаем со сканерами до. Если мы сканируем, то мы используем TextControl для наших старых программ WinForms. В этом вход TextControl может быть выбран с клавиатуры, но и с любого сканера. Иногда вам понадобятся специальные элементы управления сканера, чтобы принять эти данные, документация к сканеру говорит вам, как (добавить) отправить их со штрих-кодом тоже.

Поэтому, когда сканер отправляет свои данные в TextControl, сканер также отправляет клавишу «Возврат» для принятия. И да, вы можете отправить дополнительный ввод с клавиатуры через Windows API. Если вы используете его таким образом, то техническая часть сканера отсоединяется, потому что тогда это просто импульсное устройство для TextControl, и это может быть что угодно, если только оно распознается как (usb) устройство ввода.

...