2017-02-16 4 views
5

У меня есть собственная клавиатура и USB-сканер штрих-кода, который работает как вторая клавиатура.Журнальные события второй клавиатуры

Я хотел бы использовать основную клавиатуру для управления компьютером (как вы обычно это делаете), а вторая клавиатура (на самом деле это сканер штрих-кода) для регистрации всего входа в файл.

Это можно сделать?

Дело в том, что я могу быть в Интернете, словечко, отлично или что угодно. Я бы использовал основную клавиатуру для записи на эти процессы, тогда как в фоновом режиме вторая клавиатура (сканер штрих-кода) могла одновременно записываться, но в файл журнала. Программа, которую я мог бы использовать в данный момент, никогда не узнает о втором вводе клавиатуры.

enter image description here

Спасибо, все предложения приветствуются.

+0

Я рекомендую изучить драйверы устройств Windows. Это расскажет вам, как добавить крючок для второй клавиатуры. –

ответ

1

Вы можете использовать Raw Input API для мониторинга событий клавиатуры перед тем, как ОС их обработает. API сообщит вам, какое устройство отправляет каждое событие, поэтому вы можете регистрировать события только из сканера.

Однако API-интерфейс Raw Input не позволяет блокировать ввод, поэтому для блокировки событий сканера от обработки в качестве обычных событий клавиатуры вам нужно будет использовать SetWindowsHookEx() для установки крючка клавиатуры, который отклоняет события.

Однако SetWindowsHookEx() не сообщает, какое устройство отправляет каждое событие, поэтому вам нужно будет скоординировать эти два API вручную. Когда Raw Input обнаруживает событие клавиатуры, установите флаг, на основе которого произошло событие. Когда крючок обнаруживает событие сопутствующего события, отметьте флажок и отпустите событие, если флаг указывает на устройство сканера.

См. Combining Raw Input and keyboard Hook to selectively block input from multiple keyboards по CodeProject.

Смежные вопросы