8

我刚开始使用自动热键,我已经有 1 个问题:

有没有办法检测哪个按钮被“按下”而不列出它应该寻找的任何键?如中,检测按下的任何按钮。

我想要这个的原因是因为我想弄清楚是否有办法检测耳机上的音量增大/音量减小键。我想知道 autohotkey 是否可以以某种方式检测到它们,如果可以,它分配给它的“关键字”是什么。

笔记:

默认情况下,Windows 无法“识别”我耳机上的音量增大/减小按钮。所以它们不能用作媒体按钮,我确实试图实现这一点。

4

3 回答 3

10

恕我直言,几乎不可能在 AHK 文档中快速找到您想要的内容。

这是一步一步的。

  1. 双击任务栏中的 AHK 标志
    在此处输入图像描述

  2. 选择View > Key History and Script Info或按下Ctrl + K 在此处输入图像描述

  3. 输入一些像“你好,世界!”这样的垃圾。

  4. 选择View > Refresh或按F5。您按下的键将在右侧。您可能需要在输出窗口中向下滚动。

在此处输入图像描述

于 2019-08-29T22:26:32.183 回答
3

正如 MCL 提到的,您可以尝试AutoHotkey 文档中特殊键的步骤。

注意:这可能不适用于耳机音量按钮,因为大多数 PC 耳机插孔不支持3 条 TRRS 信号

特殊键

如果您的键盘或鼠标具有上面未列出的键,您仍然可以使用以下步骤将其设置为热键:

  1. 确保至少有一个使用键盘挂钩的脚本正在运行。您可以通过打开其主窗口并从菜单栏中选择“查看->键历史记录”来判断脚本是否具有键盘挂钩。
  2. 双击该脚本的托盘图标以打开其主窗口。
  3. 按键盘上的“神秘键”之一。
  4. 选择菜单项“查看->密钥历史记录
  5. 向下滚动到页面底部。靠近底部的某处是按键的按键按下和按键向上事件。注意:某些键不会生成事件,因此在此处不可见。如果是这种情况,您不能直接将该特定键设置为热键,因为您的键盘驱动程序或硬件处理它的级别太低,AutoHotkey 无法访问。有关可能的解决方案,请参见下文
  6. 如果可以检测到您的密钥,请记下列表第二列中的 3 位十六进制值(例如159)。
  7. 要将此键定义为热键,请遵循以下示例:

SC159:: ; Replace 159 with your key's value.
MsgBox, %A_ThisHotKey% was pressed.
return
于 2017-10-12T20:21:18.947 回答
1

You can use <KeyHistory> to get which keys you are/have pressed. Once that is determined, you can then use <GetKeyState> to see if the key has been pressed or not.

于 2015-04-13T01:05:17.153 回答