微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Autohot Key 中使用虚拟键盘代码时出现问题

如何解决在 Autohot Key 中使用虚拟键盘代码时出现问题

从我在 previous question 中解释的错误来看,我应该对遇到错误的按键使用虚拟键盘代码

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

编辑:

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

[vkBA27]::
Click,885,234
return

但它说它是无效的热键。

解决方法

来自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,而 的扫描码是kbd>'028。这使我可以像这样构建您的热键定义:

SC027::
<Your code for ; here>

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。