2012-02-06 3 views
0

У меня есть 2 клавиатуры, подключенные через usb. Я хочу, чтобы мое приложение получало вход только от одного из них. Я попытался использовать TJvHidDeviceController, я уверенно получаю дескриптор устройства, но я не могу получить никаких данных.Получить данные HID-устройства только из моего приложения delphi

Возможно ли предотвратить использование других приложений для ввода со второй клавиатуры?

+0

Просто потяните вилку! –

+0

@DavidHeffernan Я использую специально сделанное спрятанное устройство, проблема сложнее, но я дал простой пример, потому что устройство действует как клавиатура для отправки некоторых данных;) – opc0de

+0

Звучит для меня как сканер штрих-кода, возможно? –

ответ

1

Возможно ли, чтобы ваша установка не загружала драйвер устройства для клавиатуры, которую вы хотите прослушать? Если да, то вы можете попробовать этот метод:

  • Использование QueryDosDevice в список все устройств на вашем компьютере. Вы можете искать поставщика и идентификатор устройства в списке, если знаете, или создать список до и после того, как вы подключите вторую клавиатуру и посмотрите, какие элементы появятся в списке.
  • Используйте CreateFile с префиксом \\?\ для подключения к этому устройству и чтения/записи необработанных данных.
+0

, но если драйвер устройства не загружен, я все еще могу прочитать данные из него? – opc0de

+0

Требуется, чтобы вы не загрузили драйвер устройства на устройстве, или CreateFile выведет ошибку, например, «файл уже открыт другим процессом». –

+0

Спрятанные устройства автоматически переконструированы, у меня нет идей, как я могу остановить драйвер от загрузки ... – opc0de

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