按键【第一篇】基础
官网
安装
模拟器使用第三款:手机助手
连接模拟器
界面简介
第一个按键程序
按键语言不区分大小写
分析
输入输出
InputText "输入的内容"
可输出多个值
TracePrint 666,"hello" ShowMessage "很好非常好"
编码
// 抖音关注、浏览 // 启动抖音 RunApp "com.ss.android.ugc.aweme" Delay 15000 // 延时10秒 // 点击"关注" Tap 495, 334 Delay 2000 Tap 321, 234 Delay 2000 Tap 264,233 // 返回 Delay 5000 KeyPress "Back" For 10 // 上滑 Swipe 289, 527, 268,44 Delay 2000 // 延时6秒 Next
常用命令
Tap x,y 点击某个坐标点 Swipe X1, Y1, X2, Y2 从点(X1, Y1)滑动到点(X2, Y2 ) InputText 输入文字 Delay 延迟 FindColor 区域单点找色 GetPixelColor 得到指定点颜色 FindMultiColor 多点找色(类似区域找色) CmpColor 对比指定点颜色 CmpColorEx 对比多个点颜色 FindPic 区域找图 If For/while/do 控制 Sub/Functon 子程序(函数)
找图找色
适用场景
多点比色:效率高,适合静态图
多点找色:效率较低,适合动态图
抓抓工具
抓抓工具的图色工具很好用,可以测试颜色或者图片是否找成功,还可以生成代码
找图
截取关注图标并保存
代码调试
找色
变量
函数/子程序 内部不能改变全局变量的值(值传递)
变量定义
dim
Dim num num = 6 TracePrint num
Dim num = 6 TracePrint num
变量使用
Dim num = 6 TracePrint "输出变量:",num,"输出结束" //使用逗号隔开,有一个空格 TracePrint "输出变量:" & num & "输出结束" //使用连接符&
循环
For
次数循环
//例子1:固定循环次数后离开 For 10 '固定循环10次跳出 TracePrint "循环中……" Next TracePrint "离开循环" //例子2:范围循环 Dim i For i = 0 To 9 '这里没写步长,默认每次循环结束 i 都+1, //那么10次后等于9,第11次等于10,大于9,离开循环 TracePrint "循环中,i=" & i Next TracePrint "离开循环,i=" & i Dim i For i = 0 To 19 Step 2 '步长为2,每次循环结束 i 都+2, //那么10次后等于18,第11次等于20,大于19,离开循环 TracePrint "循环中,i=" & i Next TracePrint "离开循环,i=" & i Dim i For i = 9 To 0 Step -1 '步长为-1,每次循环结束 i 都-1, //那么10次后等于0,第11次等于-1,小于0,离开循环 TracePrint "循环中,i=" & i Next TracePrint "离开循环,i=" & i //例子3:循环离开 Dim i i=5 For i=0 To 10 TracePrint "循环中,i=" & i If i=5 Then Exit For '离开当前For循环 End If Next
while
//例子1 Dim i=0 While i=0 TracePrint "我停不下来啦!!快住手" Wend //当循环条件成立的时候,反复执行循环体 //例子2 Dim i i = 0 //跳出循环 While i < 10 i = i + 1 TracePrint "正在循环中,i=", i If i = 5 then TracePrint "准备退出循环" Exit While End If Wend TracePrint "循环结束,i=", i
do
默认省略while true
无限循环和条件循环
//例子1: //支持Exit Do 命令退出循环 Do TracePrint "我停不下来啦!!快住手" Loop //最常见的无限循环(死循环) //例子2: Dim i=0 Do While i=0 TracePrint "我停不下来啦!!快住手" Loop //当循环条件成立的时候,反复执行循环体 //例子3: Dim i=0 Do Until i=0 TracePrint "为什么没有循环到我呢?" Loop TracePrint "循环结束" //当循环条件成立的时候,离开循环体 //例子4: Dim i=0 Do Until i=1 TracePrint "我停不下来啦!!快住手" Loop //当循环条件不成立的时候,反复执行循环体 //例子5:条件在后(先执行一次循环体,再判断) Dim i=0 Do TracePrint "ok" Loop While i <> 0 //条件放后面,前面的循环内容可以执行一次! //例子6: Dim n=0 Do While (n<10) n = n + 1 TracePrint n & "次" Loop //例子7: Dim n=0 Do While true TracePrint "我将循环10次停下来!!" If n>=10 Then //当循环条件成立的时候,离开循环体 Exit do End if n=n+1 Loop TracePrint n & "次" //例子8(等效于例子7): Dim n=0 Do TracePrint "我将循环10次停下来!!" If n>=10 Then //当循环条件成立的时候,离开循环体 Exit do End if n=n+1 Loop TracePrint n & "次"
数组
Dim i i = Array(1,"字符串1", 2.2) 'i(0)=1,i(1)"字符串1",i(2)=2.2 For each a in i TracePrint a Next
Dim i i = Array(1,"字符串1", 2.2) 'i(0)=1,i(1)"字符串1",i(2)=2.2 TracePrint i(0),i[1]
Dim a() a(0) = "hello" a(1) = "world" TracePrint a(0), a(1)
// 二维数组 Dim a(0,0) a(0,0) = "hello" a(0,1) = "world" TracePrint a(0,0)
函数
函数的定义:如果无参,可以省略括号
函数的调用:可省略Call和括号
函数和子程序的区别:函数可以有返回值
无返回值
Dim 变量1,变量2 变量1="我是字符串信息" 变量2=123 Call 自定义函数(变量1,变量2,"第三个参数",456) EndScript //定义一个过程,可以在脚本中调用这个过程 Function 自定义函数(参数1,参数2,参数3,参数4) TracePrint "我是自定义函数,被你调用了" TracePrint "参数1=" & 参数1 TracePrint "参数2=" & 参数2 TracePrint "参数3=" & 参数3 TracePrint "参数4=" & 参数4 End Function
有返回值
Dim 返回值 返回值=自定义函数() TracePrint 返回值 Function 自定义函数() TracePrint "我是自定义函数,被你调用了" 自定义函数="把过程中想要返回的信息写这里" // 其它语言是return,这里是函数名 End Function
命令库
相当于其它语言的模块
Import "CmdLibUtil.mql" //系统默认 Import "TT.mql" //自定义 TracePrint CmdLibUtil.相加(1, 2) TracePrint TT.random(5,10)
制作字库
不建议使用按键自带的字库功能(很垃圾)
退出
Exit Do Exit For Exit Function Exit Sub Exit While EndScript
谢谢