目前,我有一个用 C++ 编写的 Win32 桌面程序,它使用原始 HID 输入API(观察WM_INPUT
消息的消息循环)来读取键事件并获取产生事件的特定键盘的句柄。当我使用多个键盘时,我需要此信息来根据键盘更改行为。
现在因为开发一个漂亮的 Win32 GUI 对我来说似乎很痛苦,所以我想使用 UWP UI。我试过KeyRoutedEventArgs.DeviceId但这始终是一个空字符串(""
)。也许这是因为它仅在 Xbox 上受支持?
另一种方法是再次使用原始输入 API,但我遇到的第一个问题是:我什至可以从 UWP 窗口获取窗口消息吗?如果是这样:是否可以将其与原始输入 API 结合以接收WM_INPUT
消息?
需要明确的是:我不需要该程序出现在 Windows 商店或其他任何地方,我只想拥有一个漂亮的 UI。但也许(可能?)这是不可能的:/
我刚刚想到的事情是尝试通过RIDEV_INPUTSINK
在 UWP 应用程序窗口聚焦时使用来全局监听事件,但这是一个温和的 hack,我希望有一个更好、更简单的方法,就像DeviceId
属性一样。