【问题标题】:Is it possible to determine which keyboard sent a keypress?是否可以确定哪个键盘发送了按键?
【发布时间】:2012-04-14 00:00:46
【问题描述】:

我有一个 Windows 将其识别为键盘的 Windows Media Center 遥控器。当我使用 Windows Media Center 在一个屏幕上播放视频运行多显示器设置时,遥控器的输入与常规键盘一起被定向到活动窗口。因此,当我对另一个屏幕进行操作时,Windows Media Center 不会响应遥控器。所以我想我会写一个简单的低级键盘钩子来捕获所有键事件,确定哪些按键来自遥控器,并将它们重定向到打开的媒体中心窗口。

唯一的问题是,我似乎在 Windows API 中找不到任何东西。除了写驱动,有什么方法可以确定按键的来源吗?

【问题讨论】:

  • 如何挂钩所有按键事件,并手动检查从遥控器接收到的按键代码,以便在解决方案中实施?另一种可能的方法是检查到 PC 的远程连接端口是否正确。
  • 大部分键码与我的其他键盘相同。它还插入了 USB 集线器。没有司机怎么拦截?
  • 我其实以为是 WiFi 遥控器,但另一种方法是处理原始输入。

标签: windows winapi


【解决方案1】:

您可以处理原始输入以处理击键并识别它们来自哪个设备。 This article 解释了如何。

【讨论】:

  • 嗯,现在已经测试过了,可以在我的电脑上运行,无论如何,如果你遇到任何问题,请随时问...祝你好运。
  • 哦,有道理。我在 x64 Windows 上,示例设置为 AnyCpu。 RAWINPUT 偏移关闭。我只会编译到 x86。
  • 另外,我无法阻止原始输入。我必须有一个额外的键盘钩子来阻止所有输入。
  • 你只需要一个钩子来阻塞所有输入,你应该钩住BlockInput win32 api函数。
猜你喜欢
  • 2010-11-23
  • 2012-08-28
  • 2023-04-07
  • 2010-11-27
  • 1970-01-01
  • 2012-01-04
  • 1970-01-01
  • 2011-08-01
  • 2012-03-28
相关资源
最近更新 更多