AutoHotKey是一种自动化脚本热键语言,可以用于自动化测试,点击等操作,可以进行捕捉回放,下面对其重要的部分进行介绍。
1变量
变量赋值有两种方法:1)用 := 进行赋值,推荐这种, 2)用 = 进行赋值,右侧需要用百分号 获得变量内容
表达式方法使用冒号-等号运算符 (:=)来存储数字、引用的字符串和其他类型的表达式。下面的例子在功能上与上面的例子相同:
MyNumber := 123
CopyOfVar := Var ;和上面的部分里与它相似的那个不同,百分号不和 := 运算符一起使用。
CopyOfVar = %Var% ;和 = 运算符一起用时,需要使用百分号来获得变量的内容。
2函数
1)形参是非引用类型的
例如
Add(x, y)
{
return x + y ; "Return" 需要一个表达式。
}
2)形参是引用类型,则在形参前面加上ByRef
例如
Swap(ByRef Left, ByRef Right)
{
temp := Left
Left := Right
Right := temp
}
3类
用 __New()函数进行初始化,类似于C++,Java的构造函数,调函类中其他函数需要用this,
例如:
productionPath := this.getProductionPath(productionDir)
例如
class AutoClick
{
__New(conf)
{
this.conf := conf
verticalLine := "|"
x := this.conf.snapX
y := this.conf.snapY
w := this.conf.snapWidth
h := this.conf.snapHeight
this.snapType := x . verticalLine . y . verticalLine . w . verticalLine . h
this.picSuffix := ".png"
}
handle()
{
.......
}
}
实例化和调用形式如下:
autoClick := AutoClick(conf)
autoClick.handle()
4结构体
与C++一样,可以认为类也是一种结构体
例如:
class Point
{
__New(x,y)
{
this.x := x ;x坐标
this.y := y ;y坐标
}
}
实例化这个结构体/类:
point := new Point(x,y)
5数组
数组用Array()进行初始化
例如:animationArr := Array()
数组插入元素:用Insert方法
例如:animationArr.Insert(point)
删除元素:用Remove(),会返回当前删除的元素值,并且删除下标的元素后,被删除下标元素之后的元素会整体向数组前面移动
removeValue := animationArr.Remove(2)
遍历数组:用 for i , value in animationArr 的形式
例如:
for i , value in animationArr
{
MouseClick , left , animationArr[i].x , animationArr[i].y
;停顿2s后开始截图,截完图片后等待3s,在执行下一个点击操作,需要做成配置文件
Sleep , 1000
this.screenShot(pictureDir , picNo , picSuffix , snapType)
picNo++
Sleep , 1000
}
6映射(键值数组)
关联数组是包含唯一键集合和值集合的对象, 其中每个键和一个值关联. 键可以为字符串, 整数或对象, 而值可以为任何类型. 关联数组可以用如下方法创建:
Array := {KeyA: ValueA, KeyB: ValueB, ..., KeyZ: ValueZ} Array := Object("KeyA", ValueA, "KeyB", ValueB, ..., "KeyZ", ValueZ)
使用 {key:value}
表示法时, 对于仅由单词字符组成的键, 其两边的引号标记是可选的. 可以使用任何表达式作为键, 但使用变量作为键时, 它必须包围在小括号中. 例如, {(KeyVar): Value}
和 {GetKey(): Value}
都是合法的.
获取项:
Value := Array[Key]
对项进行赋值:
Array[Key] := Value
移除项:
RemovedValue := Array.Remove(Key)
枚举项:
array := {ten: 10, twenty: 20, thirty: 30} For key, value in array MsgBox %key% = %value%