代码:https://github.com/Passer6y/quickMacro
基础
- 声明变量:Dim
1
2Dim screenX
screenX = GetScreenX()
2.延时:Delay1
Delay 1000 //延时1000毫秒,也就是1秒再往下执行
- 点击
触摸屏幕中的一个位置->经过一小段时间延时->放手1
2
3TouchDown x,y,1 //x,y为坐标,也就是点击屏幕的位置
Delay 50
TouchUp 1
tap封装了以上的几个操作步骤:Tap x,y
安卓三键:主菜单、主页、返回
1
2
3KeyPress "Menu"
KeyPress "Home"
KeyPress "Back"调试:ShowMessage和TracePrint
ShowMessage:显示提示,两条消息之间建议1秒以上间隔。
TracePrint:在调试页显示信息1
2
3
4
5
6
7Dim 循环次数 = 0
Do
Delay 1000
循环次数 = 循环次数+1
TracePrint “循环次数:”&循环次数&“次”
ShowMessage “循环次数:”&循环次数&“次”
Loop滑屏幕:swipe
1
Swipe 10,10,100,100,300 //从坐标10,10划动到坐标100,100,历时300毫秒
滑动 停顿 再松1
2
3
4
5TouchDown 10, 10, 1
Delay 1000
TouchMove 100, 100, 1, 300
Delay 1000
TouchUp 1
- 循环
demo1:循环点击 (10,10) 一千次1
2
3
4For 1000
Tap 10,10
// 退出 Exit For
Next
demo2: 一直点击1
2
3
4Do
Tap 10,10
//退出 Exit Do
Loop
图色操作
获取屏幕上某点颜色:GetPixelColor()
1
2
3
4
5
6
7Dim rColor
rColor = GetPixelColor(300, 300)
If rColor = "FFFFFF" Then
TracePrint "坐标(300,300)的像素点颜色是FFFFFF,说明当前处于XX界面下"
Else
TracePrint "坐标(300,300)的像素点颜色不是FFFFFF,说明还没到XX界面"
End If多点比色:
CmpColorEx(mul_color,sim)
即判断当前场景
取点(2,2)和点(4,3)以000000-202020的偏色范围(前后各10),相似度0.9的容错判断是否为同一个图,可以用抓抓快捷生成参数。1
2
3
4
5If CmpColorEx("2|2|000000-202020,4|3|000000-202020", 0.9) = 1 Then
TracePrint "这是第二个图"
Else
TracePrint "这不是第二个图"
End If
抓抓快捷生成参数: 取两点->点开’颜色’->在’颜色记录汇总’选中我们采的两点->进入‘多点比色’模式->复制’颜色描述’即可
- 多点找色:
FindMultiColor
即找到唯一的图标的作用
0,0,0,0表示全屏查找,10,20,30,40表示从坐标(10,20)和(30,40)组成的矩形范围。000000初始点的颜色值?,000000-202020(202020依旧是偏色)0|1是相对坐标(往右0,往下1)1
2
3
4
5
6
7Dim IntX,IntY
FindMultiColor 0,0,0,0,"000000","0|1|000000-202020",0,0.9,intX,intY
If intX > -1 Then
TracePrint "找到啦,坐标在"&intX&","&intY
Else
TracePrint "没找到"
End If
抓抓多点找色:和上面一样的方法
函数
- 定义/调用函数
1
2
3Function 自定义函数()
TracePrint “我是自定义函数,被你调用了”
End Function
调用函数:1
2
3自定义函数
自定义函数() // 推荐
Call 自定义函数()
demo:比大小1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16Function 比大小(参数1, 参数2)
If 参数1 > 参数2 Then
比大小 = 参数1 // 函数返回值
ElseIf 参数1 < 参数2 Then
比大小 = 参数2
Else
TracePrint "两个数一样大"
End If
End Function
Dim numA,numB
numA = 3
numB = 3
If 比大小(numA, numB) <> null Then
TracePrint "较大的值是:"&比大小(numA,numB)
End If
数据类型转换
我们从用户输入中读取的数据往往需要做类型转换。
demo: 将输入框的数据从字符串型变成整型1
2
3
4Dim 用户输入 = ReadUIConfig("输入框1")
If CInt(用户输入) = 1 Then
TracePrint 用户输入
End If
日志
开启log记录后,会将所有的tranceprint都输出到log文件1
2
3
4
5
6Log.Open
**************
TracePrint "test"
TracePrint GetTempDir()
**************
Log.Close
分辨率
使用的720x1280的设备开发的程序则注明如下代码,以便程序自适应其他设备(多点比色,找色这些功能才有用)1
SetScreenScale 720,1280
多线程
一般用于一个线程运行脚本,另一个线程干其他的(检测是否卡主等等)