У меня есть система, в которой у меня несколько клавиатур, и мне действительно нужно знать, с какой клавиатуры происходит нажатие клавиши. Чтобы объяснить настройку:
- У меня обычный ПК и USB клавиатура
- У меня есть внешний VGA-экран с некоторыми хард-клавишами
- Аппаратные клавиши отображаются как стандартная клавиатура USB, отправляя ограниченное количество кодов клавиш (F1, F2, Return, + и -).
У меня есть ловушка низкого уровня (в C #, но на самом деле вызывающая функциональность Win32), которая может обрабатывать ввод, даже когда мое приложение не сфокусировано.
Проблема в том, что при использовании обычной клавиатуры некоторые из отображенных кодов клавиш улавливаются приложением, запускаемым на внешнем экране. Одно из нажатий клавиш, отправляемых внешним экраном и используемых для подтверждения, - это VK_RETURN. Если я не смогу идентифицировать «устройство» и отфильтровать его, пользователь мог бы выполнять действия и подтверждать их на экране, на который даже не смотрел.
Как узнать, какая клавиатура отвечает за нажатие клавиш?