Получить идентификатор устройства клавиатуры для ключевого события в окне UWP при использовании нескольких клавиатур - PullRequest
0 голосов
/ 06 апреля 2020

В настоящее время у меня есть настольная программа Win32, написанная на C ++, которая использует Raw HID Input API (сообщение l oop, наблюдающее WM_INPUT сообщения) для чтения ключевых событий и также получите указатель на указанную c клавиатуру, которая произвела событие. Мне нужна эта информация, чтобы изменить поведение в зависимости от клавиатуры, когда я использую несколько клавиатур.

Теперь, поскольку разработка хорошего Win32 GUI кажется мне болезненной, я хотел бы использовать UWP UI. Я пытался KeyRoutedEventArgs.DeviceId , но это всегда пустая строка (""). Может быть, это потому, что он поддерживается только в Xbox?

Альтернативой может быть повторное использование Raw Input API, но первая проблема, с которой я сталкиваюсь, заключается в следующем: могу ли я даже получать оконные сообщения от UWP окно? И если так: возможно ли объединить это с Raw Input API для получения WM_INPUT сообщений?

Для ясности: мне не нужно, чтобы программа была в магазине Windows или что-то еще, Я просто хотел бы иметь хороший интерфейс. Но, возможно (возможно?), Это невозможно сделать следующим образом: /

Что-то, о чем я только что подумал, это попытка глобально прослушивать события, используя RIDEV_INPUTSINK, когда приложение UWP окно сфокусировано, но это мягкий взлом, и я надеюсь, что есть лучший и более простой способ, как свойство DeviceId.

1 Ответ

0 голосов
/ 07 апреля 2020

Отличный вопрос, боюсь, вы не могли различить guish несколько клавиатур при наборе в приложении UWP. Я обнаружил, что вы использовали win32 api для успешного обнаружения клавиатур, с помощью desktop-bridge вы можете использовать то же самое на платформе UWP. Другими словами, вы можете создать расширение рабочего стола для приложения uwp и отправить различную информацию о клавиатуре в основное приложение uwp с помощью AppService . И у Стефана есть блог, который объясняет, как использовать расширение рабочего стола для обнаружения глобальной горячей клавиши. Вы можете зарегестрироваться Глобальная регистрация горячих клавиш в UWP для получения подробной информации.

...