C # — перехват мыши и клавиатуры в UWP: необработанный ввод VS KeyEvents VS Global Hook

Я хотел бы подключить мышь и клавиатуру в своем приложении UWP, и мне интересно, что лучше между Сырой ввод, Глобальный хук и простые события XAML Key.

Проще говоря, я разрабатываю приложение UWP, которое транслирует игру (визуализируется с использованием облачного сервера, такого как nVidia Grid), и я бы хотел подключить пользовательские события (клавиатуру и мышь), чтобы сообщить моему серверу, что пользователь движется в игра (например).

Я подумал о нескольких подходах:

  • Создание компонента времени выполнения Windows в C ++ / CX, который используется моим универсальным приложением в C #. Компонент будет использовать либо Raw Input, либо Global hook, чтобы вызвать событие мыши или клавиатуры и отправить его обратно в мое приложение UWP.
  • Просто используйте события Key, такие как события KeyDown и PointerMoved в Grid или другом элементе пользовательского интерфейса, и слушайте его.

Вывод будет отправлен на мой сервер через сокет.

Что было бы лучшим решением для производительности и простоты?

0

Решение

Вы пробовали верхний хук в CoreWindow, как это?

Window.Current.CoreWindow.KeyDown += CoreWindow_KeyDown;
Window.Current.CoreWindow.PointerMoved += CoreWindow_PointerMoved;
1

Другие решения

Кажется, только ключевые события могут перехватывать ввод в UWP.

0

По вопросам рекламы [email protected]