【问题标题】:Having problem with using Virtual keyboard code in Autohot Key在 Autohotkey 中使用虚拟键盘代码时遇到问题
【发布时间】:2021-02-04 09:41:19
【问题描述】:

根据我在previous question 中解释的错误,我发现我应该对遇到错误的键使用虚拟键盘代码。

我想对热键 +'(同时按下 Shift 和 ')和键使用虚拟代码; (半列)(更具体地说,我想使用热键 +' 单击坐标和键 ; 单击其他坐标)但我在编写代码时遇到问题。我找到了虚拟键列表here,但不幸的是我不知道如何使用它们来编写代码。

编辑:

为了按半列 (;) 我试过这个键:

[vkBA27]::
Click,885,234
return

但它说它是无效的热键。

【问题讨论】:

  • 对不起,我让你挂在你之前的问题上,我完全忘记了。你可以试试SC027::<Your code here> 这是来自 AHK 文档的Special Keys 部分。 027 应该是 ; 的 3 位十六进制代码
  • @CharlieArmstrong 没问题:)让我试试这个。
  • @CharlieArmstrong 非常感谢您的帮助。有效!现在我刚刚收到+' 热键的错误。它是 shift 和 ' 的组合,看起来有点棘手,但我认为我只需要 ' 的 vk 代码,因为我在代码中使用了 shift 键并且还没有问题。
  • 很高兴听到这个消息!使用here 描述的方法,我可以找出' 的vk 代码是028。所以你的热键应该是+SC028
  • @CharlieArmstrong 它奏效了。非常感谢您的帮助,谢谢先生!

标签: autohotkey


【解决方案1】:

来自AutoHotkey documentation

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

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

解读上面的例子,我们知道使用虚拟键的热键声明格式为:

SC<Hex code>::
<Your code here>
Return

我只能假设“SC”代表“扫描代码”。使用上述步骤,我可以看到 ; 的扫描码(文档将其称为“3 位十六进制值”)是027,而 的扫描码'028。这使我可以像这样构建您的热键定义:

SC027::
<Your code for ; here>

+SC028::
<Your code for SHIFT+' here>

【讨论】:

  • 一些更正:没有“x键的扫描码(SC)”之类的东西。您可以说“SC for x 键盘上的 x 键”。例如,对我来说,标记为' 的键盘上的键会产生 SC 2B,然后 Windows 会将其映射到我的键盘布局上的虚拟键 (VK) BF。键盘上的键与 SC 相关联,然后 Windows 将根据当前有效的键盘布局(除其他外)将它接收到的 SC 映射到 VK。您可以通过Windows SDK header kbd.h 更详细地查看所有内容。要使用 VK 指定 AHK 热键,您可以使用例如 vkBF::
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-18
  • 1970-01-01
  • 2020-10-21
  • 1970-01-01
  • 1970-01-01
  • 2012-10-10
  • 1970-01-01
相关资源
最近更新 更多