UWP中的鼠标和键盘挂钩:原始输入VS KeyEvents VS全局挂钩

Mouse and Keyboard hooking in UWP : Raw input VS KeyEvents VS Global Hook

本文关键字:VS 输入 KeyEvents 全局 原始 键盘 UWP 鼠标      更新时间:2023-10-16

我想在我的UWP应用程序中钩住鼠标和键盘,我想知道Raw输入、全局钩住和简单的XAML键事件之间的最佳选择。

简单地说,我正在开发一个UWP应用程序,它可以流式传输游戏(使用云服务器渲染,如nVidia Grid(,我想挂接用户事件(键盘和鼠标(,告诉我的服务器用户正在游戏中移动(例如(。

我想到了几种方法:

  • 在C++/CX中创建一个Windows运行时组件,该组件由我在C#中的Universal应用程序使用。该组件将使用Raw Input或Global hook来引发鼠标或键盘事件,并将其发送回我的UWP应用程序
  • 只需使用Key事件,如Grid或其他UI元素上的KeyDown和PointerMoved事件,并监听它

输出将使用套接字连接发送到我的服务器。

什么是性能和简单性的最佳解决方案?

你有没有试过像这样从顶部钩住CoreWindow?

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

似乎只有关键事件才允许在UWP中挂接输入。