【基础】热键

我们日常使用计算机,免不了与键盘鼠标打交道。
肩负着交互使命的输入设备,我们曾花了大量时间适应它们,掌握各个键位,学习输入法,也或多或少也记得一些快捷键,用发激发操作系统或者程序的常用功能。
在不断熟悉这样那样的界面和设定,初期游戏般的新奇过后,这些重复的操作总在消磨我们的耐心,游戏的最后决不能少了探索的乐趣。我们必须做主导,而非被迫适应什么别人预定的标准逻辑。
若你对AHK的热键足够了解,自定义热键功能如同在rpg游戏为按键定义施放技能。
若你对自由度有一定执念,学习过程一如打怪升级点技能一般清晰。
本章主要说明Autohotkey的热键。
热键类似快捷键,有别于一般快捷键一对一固有设定,热键是按键操作的延伸,配合脚本代码可以为按键指定更多的功能,正吻合autohotkey(自动化热键)之名。

摘要

  • 1. 热键最基本格式
  • -- 1.1. 单行热键
  • -- 1.2. 多行热键
  • 2. 热键名称
  • -- 2.1. 单键 型
  • -- 2.2. 组合键 型
  • -- 2.3. 修饰符组合键型
  • -- 2.4. 特殊按键的热键创建: fn与鼠标侧键等
  • 3. 热键功能
  • -- 3.1. 热键映射它键
  • -- 3.2. (~)热键前缀: 按键原有功能的覆盖与保留
  • -- 3.3. (*)热键前缀: 无视修饰符激发功能
  • -- 3.4. 热键短击长按逻辑
  • -- 3.5. (up)热键后缀: 弹起触发
  • -- 3.6. 热键默认单线程
  • -- 3.7. 热键长按循环
  • -- 3.8. 循环开关
  • 4. Keywait命令: 按键断点判断
  • 5. 热键嵌套与内置变量A_ThisHotkey
  • 6. 内置变量A_TickCount按键时长判定
  • 7. Pause/Suspend命令对热键的影响
  • 8. send命令的热键冲突与($)热键前缀添加钩子
  • 9. SetKeyDelay命令 : Send系列按键延迟
  • 10. #if系列,热键的生效范围
  • 11. Hotkey命令: 动态热键

1.热键最基本格式

热键创建格式分2类:

  1. 单行热键
  2. 多行热键

如下:

1.1.单行热键

[热键名称]::1行代码 >>> 其他键名称/赋值语句/单行命令式/函数

注:热键名称右侧有代码行时,热键激发只执行右侧单行代码,若底部还有代码则不再执行,相当于自备return完结命令。

1.1.多行热键

[热键名称]::
    代码行1
    代码行2
    ...
    代码行n
return

注: 分行(底部)代码块务必以return结尾,表按键功能代码执行完结。

可以看出,热键创建语法组成部分就2项:


2.热键名称

详细热键定义名称列表请参照帮助文档>【基本用法和语法】- 【按键列表】

热键命名办法有3类:

  1. 单键
  2. 双组合键
  3. 多修饰符组合键

2.1.单键 型

key::    ;这类热键没有太多可塑花样, 仅需要输入 按键名称::即完成热键功能创建

鉴于热键正常情况下覆盖原有输出功能,建议以个人罕用的功能按键创建,如insert/printscreen等

要注意的是,经由shift转义的按键,与第3类修饰符按键将有重复,如:

!::      ;感叹号热键,由shift + 1触发,等同于下述第3类修饰符热键
+1::     ;shift + 1,同上个热键

大部分小键盘转义热键相对特别.

+numpad1::      ;这样的热键shift + 小键盘数字1 将不会执行
numpadend::     ;由于shift转义为纯功能按键numpadend

2.2.组合键 型

按键1 & 按键2::    ;双组合键用 & 连接组合键名称,&两端需要空格间隔,只支持2个按键同时按下激发

f1 & f2::正确

f1 & f2 & f3::错误

组合键在个别情况下修饰符组合键失效报错替换使用,正常情况不建议如此创建办法

若需要更多连续按键功能关联,建议以热字串代替(后续章节将就热字串进行描述).

2.3.修饰符组合键型

这类热键创建较为常用,是有必要掌握的。

(1至4个修饰符)单按键::

修饰符分别为:

  1. (+) 对应shift
  2. (^) ctrl
  3. (!) alt
  4. (#) win键

修饰符组合键不同于双按键热键,它保留最后一个按键的本来功能,仅覆盖原有的组合功能。

!1::         ;alt+1触发热键, 不影响1键字符输出
!::          ;若修饰符后不接按键名称, 视作shift+1 转义为(!)键激发热键功能, 其他修饰符同理
!+^#esc::    ;此为alt+shift+ctrl+win+esc激发功能(不太好按= =)

修饰符组合热键的缺陷,集中在send命令输出按键与原生快捷键冲突。大部分情况keywait命令可解。

2.4.特殊按键的热键创建: fn与鼠标侧键等

复制以下代码,并运行:

#persistent         ;让脚本持久运行不退出
#InstallKeybdHook   ;安装键鼠钩子
#InstallMouseHook   ;安装鼠标钩子
keyhistory          ;显示历史按键

初始显示列表为空,表格底部提示f5刷新历史,在列表刷新前按下你想创建热键的特殊按键,列表会显示按键详细信息。

列VK和SC为按键的虚拟键码。

在面对不知名的按键,如鼠标侧键/fn键,可以通过这种方式获取虚拟键码创建。

如下示例鼠标侧键的名称Xbutton1。

XButton1::
VK05::

这样的热键命名方式都是合法的,fn键未命名,故只能用虚拟键码创建。


为TA充电
共{{data.count}}人
人已赞赏
AHKV1办公

【lib】st_ahk-运行/编译在 Sublime Text 中打开的 ahk 文件

2021-5-28 8:52:59

AHKV1学习

【基础】变量

2021-5-30 20:49:59

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索