AutoHotkey v1 类的定义与部分使用技巧
本文所使用的 AHK 版本为 AutoHotKey v1 。
前言
本人想在 AHK 中使用面向对象的方式编写代码,但是发现在官方文档中仅有较少关于 class
的操作代码示例,所以根据自己这两天的代码编写过程,整理出常用的一些使用技巧供大家参考。
类的创建和使用
类的创建使用 class
关键字。可以显式定义构造方法以及析构方法:
1 |
|
类的使用:
1 |
|
在类中创建热键并绑定类方法
使用面向对象的思想编写代码的话,我们或许需要在类中创建热键及其响应逻辑的方法:
1 |
|
上述代码便在类中创建了一个使用类中方法作为响应逻辑的热键。其中:
varFunctionA := ObjBindMethod(this, "functionA")
部分:"functionA"
中双引号必须保留,双引号中间内容为对应的方法名。varFunctionName
为自定义的变量名称,与第7行第3个参数相对应。
HotKey, !A, % varFunctionA, On
部分:!A
为热键的内容,具体可以参考文档中 热键 部分内容。% varFunctionA
中百分号必须保留,后面的内容对应上面一行自定义的变量名。
热键的使用:
1 |
|
通过对该类的实例化并调用实例化对象的 loadHotKey
方法即可。
在类中绘制 UI
并绑定类方法
1 |
|
Gui, Add, Button, w200 h35 hwndHFuncB, This is a button.
中hwndHFuncB
部分:- 形式为
hwnd + 自定义变量名
- 自定义变量名与第9行中第3个参数相对应。
- 形式为
varFuncB := ObjBindMethod(this, "functionB")
部分:varFuncB
为另一个自定义变量名,与第9行中第4个变量名相对应。"functionB"
中双引号必须保留,双引号中间内容为对应的方法名。
GuiControl, +g, %HFuncB%, % varFuncB
中第3、4个参数分别为上述的两个自定义变量名。
代码示例
使用面向对象思想重构 通过 AutoHotKey 简化 Hexo 操作 | 洛语 の Blog (luoyu-ying.github.io) 中 Deploy 部分的操作。
1 |
|
AutoHotkey v1 类的定义与部分使用技巧
https://luoyuy.top/posts/e17fd16bc395/