【问题标题】:how to Detect a KeyCode event of a function key?如何检测功能键的 KeyCode 事件?
【发布时间】:2021-06-17 12:50:15
【问题描述】:

我正在尝试模仿笔记本电脑键盘 [Lenovo Yoga 920,如果重要的话] 功能行上的“静音麦克风”和“关闭相机”键,以便为它们创建一些物理按钮(使用 arduino或 AutoHotKeys 例如)。

无论是通过使用我的 PC 上的本地脚本,还是使用像 https://keycode.info/ 这样的在线网站,我都能获得大多数其他键的键码 这些脚本和网站可以找到除我想要的之外的所有其他关键代码。

如何复制这些命令并从笔记本电脑键盘以外的其他地方使用它们?

我能找到的最接近的是:https://unix.stackexchange.com/questions/125476/figure-out-the-emitted-keycode-for-fnf6 但它仅与 Linux 有关。

谢谢!

【问题讨论】:

  • 您计算机的“禁用麦克风”和“禁用网络摄像头”按钮可能与其他具有键码的键不同,例如“更改音量”。与后者不同,Windows 将无法看到您按下了那些禁用键,因为这些键主要由您的计算机本身处理。大多数软件端解决方案可能无法触发您计算机的硬件功能。如果您在这里没有得到答案,您可能会更幸运地在SuperUser 上提问。
  • 谢谢。 @Spyre 你能想出什么方法来模仿他们的行为吗?
  • 我最好的想法是使用 Arduino 物理按下键盘上的按钮。当然,这是低效的、不切实际的,而且总的来说很愚蠢。 StackOverflow 是一个可以获取编程和代码相关问题的地方。如前所述,我觉得这是 SuperUser 的人更擅长解决的问题,因为现在这更像是一个硬件问题。 Differences between StackOverflow and SuperUser
  • 可以使用任何活动的 ahk 脚本中的密钥历史记录来检测一些特殊密钥,以获得 3 位十六进制值。有关详细说明,请尝试以下操作:autohotkey.com/docs/KeyList.htm#SpecialKeys

标签: arduino keyboard-shortcuts autohotkey keyboard-events custom-keyboard


【解决方案1】:

如果您有 Arduino Leonardo,则可以使用 NicoHood HID-Project 轻松完成。通过转到 Manage Libraries 并从 NicoHood 搜索 HID-Project 来安装库。在Examples->HID_Project->Consumer 下,您可以找到如何发送特殊媒体密钥的示例。

https://github.com/NicoHood/HID/wiki/Consumer-API

如果您只有 Arduino UNO 或其他没有完全符合 HID 标准的 USB 接口的设备,您需要将他的引导加载程序闪存到设备上。说明如下。

https://github.com/NicoHood/HoodLoader2

最后,如果您在 Windows 上并正在寻找使用 AutoHotKeys 或 Python 或其他脚本语言的解决方案,以下是您正在寻找的关键代码。例如,静音是VK_VOLUME_MUTE - 0xAD

https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes

【讨论】:

  • 我不认为这是 OP 正在寻找的解决方案。据我了解,他的电脑有特殊的“禁用相机”和“禁用麦克风”键,不属于可以通过标准Media Keys 访问的标准媒体键的类别。请注意,将麦克风静音与“禁用”它不同。当麦克风被禁用时,就像您从设备上拔下 USB 麦克风一样;计算机不再识别系统上的麦克风(至少根据我的经验)。
  • 答案不适用,因为 ^^ 指出 ^^ 并且应该强调一点,尤其是笔记本电脑具有 HID 规范处理的特殊键。我的(Sager)也有一个键来切换三个级别的键盘背光,它让我发疯,当机器启动时它默认为低,如果不按两次组合键我就无法关闭它!啊!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-21
相关资源
最近更新 更多