Я разрабатываю приложение, которое работает на машине, к которой подключено несколько USB-клавиатур. Иногда клавиатуры добавляются или удаляются. При каждом нажатии клавиши приложению необходимо узнать, какая клавиша была нажата и какая клавиатура использовалась.
У меня есть рабочая версия приложения, которая использует RawInput под windows. Однако Windows может занять некоторое время, чтобы понять, что произошло, если вы добавите или удалите концентратор или две, заполненные клавиатурами, и я тоже смотрю, можно ли добиться того же в другой ОС более надежно.
Mac OS X / Cocoa будет вторым выбором, если это возможно, но я открыт для предложений для любых других платформ, таких как Linux, если вы можете предложить способ сделать это.

В Mac OS X вы можете использовать HID менеджер, чтобы получить прямую видимость того, какие элементы HID активизируются на каких устройствах.
Это должно работать не только для клавиатуры, но и для всех HID-устройств - мышей, игровых планшетов и т. д. - хотя, конечно, вы можете ограничить то, на что ваш код обращает внимание, только определенными устройствами или устройствами определенного класса.
Вы должны быть знакомы с концепциями согласования USB-устройств и взаимодействия USB-устройств с интерфейсом пользователя в целом, но если вы знакомы с ними, вам будет довольно просто настроить и запустить что-то с помощью HID Manager в Mac OS X Leopard (10.5 ).