Изменить или переопределить поведение клавиатуры USB на более общий контроллер - PullRequest
2 голосов
/ 25 мая 2011

Изменение нажатий клавиш USB-клавиатуры

Мой вопрос очень похож на приведенный выше ... (на который не было четкого ответа)

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

Поэтому мне нужно, чтобы ОС распознала его как универсальное устройство HID или MIDIустройство или что-то, что отправляет сообщения OSC.

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

Есть идеи, с чего начать?Я думаю, что мне, вероятно, нужно написать отдельную программу для пользователей, чтобы выбрать USB-устройство и перенаправить его в мою программу ...

Любой язык в порядке - я пишу код на Python, иногда C,и Java / Обработка.

Ответы [ 2 ]

1 голос
/ 25 мая 2011

К сожалению, вы обнаружите, что это ЧРЕЗВЫЧАЙНО сложно сделать: большинство современных операционных систем автоматически обнаруживают профиль HID и загружают для него драйверы, и, вообще говоря, очень затрудняют изменение этого поведения по умолчанию.

Без взлома аппаратного обеспечения вам нужно каким-то образом переопределить поведение ОС по умолчанию для этого конкретного USB VID (идентификатор производителя) и PID (идентификатор продукта) и дать указание ОС загрузить собственное расширение ядра?Я бы посоветовал начать с источника драйверов AppleUSBKeyboard по адресу http://www.opensource.apple.com/source/IOUSBFamily/IOUSBFamily-206.4.1/AppleUSBKeyboard/, а затем выяснить, как установить пользовательскую сборку в качестве предпочтительного драйвера USB для VID и PID конкретной клавиатуры.После этого должен быть беспорядочный беспорядок - отправка ключей только для вашего приложения, а не для чего-либо еще.

0 голосов
/ 01 июня 2011

Можно ли написать функция, которая отключает обычную ввод с клавиатуры операционной системы для все ключи, кроме ESC, если моя программа в фокусе? - Джеффри Мэй 24 в 21: 59

Да, это должно быть вполне возможно, я не знаю о Mac, но в Win32 вам нужен глобальный хук клавиатуры (посмотрите SetWindowsHookEx)

...