AutoHotKey特殊键通用表达法
长云 @ 2008-10-06 10:30
深入浅出地介绍一下最通用的做法。
-
名称与键值
所谓按下a、ctrl键,这里的a、ctrl只是一个名称,是给用户(人)看的名称。而在操作系统看来,区分每一个键的真正标准是键值(Scan Code)。 -
使用键值
在 AutoHotkey 中,不仅可以使用键名,也可以使用键值。比如,
a:: 也可以写为 sc01E::
send a 也可以写为 send {vk41sc01E}
在上例中,sc表示scan code,vk表示virtual key(虚拟键),因此,是固定写法。
而01E和41则是与a相关的值,也就是说,不同的键这两个值不同。 -
何时用键值
当然,多数情况下用键名更直观,方便。只有遇到 AutoHotkey 不支持的特殊键,或你不知道如何表达的键时,才建议用键值。 -
如何查找键值
你可以用某些关于键盘的小工具软件来查;
也可以用 AutoHotkey 自身功能来查。
方法如下:
4.1 运行任一ahk脚本,双击托盘图标,现出主窗口(如图)
4.2 主窗口→菜单:view → key history & script info(ctrl+K)→ 显示如下内容
4.3 确认 keyboard hook 为 yes
- 如果为 no,则修改此脚本,在最前面加入一行 #InstallKeybdHook,重新运行此脚本
4.4 按下 你关注的键
4.5 再按 F5 刷新显示,就会看到很多键,其中就有你所按键(如无意外则在最后面)的SC、VK值。
比如,xbeta 所用计算机(各机器未必相同)上 Fn 的键值为 {vkff sc163}(如图)