变量在使用前必须用Dim语句定义,但Dim语句不必指定类型。声明多个变量时,使用逗号分隔变量。例如: Dim Top, Bottom, Left, Right, 上, 下, 左2, 右1。
变量的作用域由声明它的位置决定。如果在子程序中声明变量,则只有该子程序中的代码可以访问或更改变量值,此时变量具有局部作用域并被称为局部变量。如果在子程序之外声明变量,则该变量可以被当前脚本的所有子程序所识别,称为全局变量。
变量还可以定义为数组的形式,数组可以是一维的,也可以是多维的,数组的每个维度的索引都是从0开始的正整数,当定义一维数组时,可以指定数组的初始元素个数,也可以不指定。如:
上述例子都可以定义一个一维数组。但即使指定了数组的初始元素个数,以后也可以随时增加新的元素(直接访问新的元素即可)。当定义多维数组的时候,则必须指定数组在每个维度的初始元素个数,各个维度的初始元素个数之间用逗号分隔,如:
名称 | 格式 | 解释 |
If | If 表达式 Then … ElseIf 表达式 Then … Else … End If | 判断表达式并执行语句--通过判断表达式的取值,来执行后面的动作或控制。 |
Else | If 表达式 Then … ElseIf 表达式 Then … Else … End If | 和If语句结合,进行条件判断。 |
ElseIf | If 表达式 Then … ElseIf 表达式 Then … ElseIf 表达式 Then … Else … End If | 和If语句结合,进行条件判断。 |
Then | If 表达式 Then | 和If、ElseIf语句结合,进行条件判断。 |
While | While 循环条件 … Wend | 循环语句--当循环条件成立的时候,反复执行循环体。 |
Wend | While 循环条件 … Wend | 和While一起构成循环语句。 |
For | For 循环次数 或 For 变量 = 起始数值 To 终止数值 或 For 变量 = 起始数值 To 终止数值 Step 步长数值 或 For Each 变量 In 数组 ... Next | 循环语句。可以循环一定次数,也可以按照变量的起始数值到终止数值循环(如果不指定步长数值,默认步长为1),也可以循环取得数组中的所有值。 |
Next | Next | 和For一起构成循环语句。 |
Select | Select Case 表达式 Case 情况1 … Case 情况2 … Case Else … End Select | 根据情况选择条件判断。 |
Case | Select Case 表达式 Case 情况1 … Case 情况2 … Case Else … End Select | 根据情况选择条件判断。 |
Do | Do While 表达式 … Loop 或者 Do Until 表达式 … Loop | 条件循环 |
Loop | Do While 表达式 … Loop 或者 Do Until 表达式 … Loop | 条件循环 |
Until | Do Until 表达式 … Loop | 条件循环 |
Sub | Sub 过程名(参数1, 参数2, ...) … End Sub | 定义一个过程,可以在脚本中调用这个过程。 |
Function | Function 函数过程名(参数1, 参数2, ...) … End Function | 定义一个函数过程,可以在脚本中调用这个函数。 |
Call | Call 函数或者过程名 (参数1, 参数2, ...) 可以简写为 函数或者过程名 参数1, 参数2, ... (省略Call关键字,并且无括号) | 调用函数或者过程。 |
End If | End If | 用于配对结束 If 条件判断。 |
End Select | End Select | 用于配对结束 Select Case 选择情况判断。 |
End Sub | [End Sub | 用于配对结束 Sub 子程序过程。 |
End Function | End Function | 用于配对结束 Function 函数过程。 |
|
|
|
Exit Do | Exit Do | 用于配对退出 Do 循环。 |
Exit For | Exit For | 用于配对退出 For 循环。 |
Exit Sub | Exit Sub | 用于配对退出 Sub 子程序过程。 |
Exit Function | Exit Function | 用于配对退出 Function 函数过程。 |
EndScript | EndScript | 强制结束脚本的执行。 |
Dim | Dim 变量1, 变量2 ... | 定义一个或多个变量。 |
名称 | 格式 | 解释 |
Abs | Abs(数值表达式) | 返回数值的绝对值,绝对值是其无符号的数值大小。例如,Abs(-1) 和 Abs(1) 都返回 1。 |
Asc | Asc(字符串表达式) | 返回与字符串的第一个字母对应的字符ASCII码。 |
Atn | Atn(数值表达式) | 返回数值的反正切值。 即计算直角三角形两个边的比值 (number) 并返回对应角的弧度值。此比值是该角对边的长度与邻边长度之比。结果的范围是从 -pi/2 到 pi/2 弧度。 将角度乘以 pi/180 即可转换为弧度,将弧度乘以 180/pi 即可转换为角度。 |
CBool | CBool(表达式) | 试图把表达式转换为Bool类型并返回此Bool值。 |
CDbl | CDbl(表达式) | 试图把表达式转换为数值类型并返回此数值。 |
Chr | Chr(数值表达式) | 返回与指定的ASCII字符代码相对应的字符。 |
CInt | CInt(表达式) | 试图把表达式转换为数值类型,并返回此数值经过四舍五入的结果。 |
CLng | CLng(表达式) | 试图把表达式转换为数值类型,并返回此数值经过四舍五入的结果。 |
Sin | Sin(数值表达式) | 返回将某个角表示为弧度数值的正弦值。即取某个角并返回直角三角形两边的比值。此比值是直角三角形中该角的对边长度与斜边长度之比。 结果范围在 -1 到 1 之间。 将角度乘以 pi/180 即可转换为弧度,将弧度乘以 180/pi 即可转换为角度。 |
Cos | Cos(数值表达式) | 返回将某个角表示为弧度数值的余弦值。 即取某个角并返回直角三角形两边的比值。此比值是直角三角形中该角的邻边长度与斜边长度之比。结果范围在 -1 到 1 之间。 将角度乘以 pi/180 即可转换为弧度,将弧度乘以 180/pi 即可转换为角度。 |
CSng | CSng(表达式) | 试图把表达式转换为数值类型并返回此数值。 |
CStr | CStr(表达式) | 试图把表达式转换为字符串类型并返回此字符串。 |
Date | Date(时间表达式) | 返回当前系统日期。格式为 年/月/日,如2013年10月1日表示为2013/10/01。 |
Exp | Exp(数值表达式) | 返回 e(自然对数的底)的幂次方。常数e约为 2.718282。 |
Fix | Fix(数值表达式) | 返回指定数值的整数部分。 如果指定的数值为负数时,Fix会返回大于或等于该数值的第一个负整数。例如,Fix将 -8.4 转换为 -8。 |
Hex | Hex(数值表达式) | 返回表示十六进制数值的字符串。当指定的数值表达式包含小数位时,会先采用四舍五入的方式去掉小数位再转换。 |
InStr | InStr(起始位置, 字符串1, 字符串2) | 返回字符串2在字符串1中第一次出现的位置,从字符串1的某个指定起始位置开始搜索。 起始位置为数值表达式,用于设置每次搜索的开始位置,设为0表示从头开始搜索。 |
InStrRev | InStrRev (字符串1, 字符串2, 起始位置) | 返回字符串2在字符串1中出现的从结尾计起的位置。从字符串1的某个指定起始位置开始逆向搜索。 起始位置为数值表达式,用于设置每次搜索的开始位置,设为-1,表示从最后一个字符的位置开始搜索。 |
Int | Int(数值表达式) | 返回指定数值的整数部分。如果指定的数值为负数时,Int会返回小于或等于该数值的第一个负整数。 |
IsArray | IsArray(变量) | 返回 Bool 值指明某变量是否为数组。如果变量是数组,IsArray 返回 True;否则,返回 False。 |
IsNull | IsNull(变量) | 返回 Bool 值,指明某变量是否不包含任何有效数据 (Null)。未初始化的变量通常都不包含任何有效数据。 |
IsNumeric | IsNumeric(变量) | 返回 Bool 值,指明某变量是否为数值类型。如果变量是数值类型,IsNumeric 返回 True;否则,返回 False。 |
Join | Join(字符串数组) | 返回一个字符串,此字符串由包含在数组中的多个子字符串联接创建,各个子字符串之间采用分隔符隔开。 分隔符是字符串类型,可以是空字符串 "" |
KeepScreen | KeepScreen (Bool类型表达式) | 当指定的Bool类型表达式为True的时候,保持屏幕常开状态;否则,关闭屏幕常开功能(屏幕会自动关闭)。 |
LCase | LCase(字符串表达式) | 返回字符串的小写形式。 仅大写字母转换成小写字母;所有小写字母和非字母字符保持不变。 |
Left | Left(字符串, 长度) | 返回指定数目的从字符串的左边算起的字符。 指定的长度为数值表达式,指明要返回的字符数目。如果是 0,返回空字符串 "";如果大于或等于字符串中的字符总数,则返回整个字符串。 |
Len | Len(字符串表达式) | 返回字符串内字符的数目。 |
Log | Log(数字表达式) | 返回数值的自然对数,即以常数 e 为底的对数。常数 e 的值约为 2.718282。 |
LTrim | LTrim(字符串表达式) | 返回不带前导空格的字符串。 |
Mid | Mid(字符串, 起始位置, 长度) | 从字符串中返回指定数目的字符。 起始位置和长度都是数值类型的表达式。 |
Now | Now | 根据计算机系统设定的日期和时间,返回当前的日期和时间值组成的字符串。 |
Oct | Oct(数值表达式) | 返回表示八进制数值的字符串。当指定的数值表达式包含小数位时,会先采用四舍五入的方式去掉小数位再转换。 |
PutAttachment | PutAttachment(路径, 要释放的文件) PutAttachment 路径 | 把当前脚本包含的附件释放到指定的目录下。 路径是字符串类型,表示把附件文件释放到某个特定的目录下。 如果路径为Null或空字符串,会把附件释放到按键精灵的临时文件目录下。临时文件目录可以通过调用 GetTempDir() 获得。 要释放的文件(可选参数)为字符串类型,可以指定只释放附件中的一个或几个文件,支持通配符 * 和 ? 。 当不指定要释放的文件,或指定为Null或空字符串时,表示要释放本脚本附件中的所有文件。 |
Randomize | Randomize Randomize 随机数种子 | 初始化随机数生成器。 |
Replace | Replace (原字符串 , 查找的子字符串, 替换的字符串) | 返回字符串,其中所有出现的某子字符串被替换为另一个字符串。 i="我爱你按键精灵" ShowMessage Replace(i, "你", "") 运行可以看到“你”字被替换为空字符串,运行结果为"我爱按键精灵"。 |
RGB | RGB(数值R, 数值G, 数值B) | 返回由红(由数值R表示)、绿(由数值G表示)、蓝(由数值B表示)三个分量组成的颜色值。 数值R, 数值G, 数值B的范围是0到255之间的整数,返回的颜色值也是数值型。 |
Right | Right(字符串, 长度) | 返回指定数目的从字符串的右边算起的字符。 指定的长度为数值表达式,指明要返回的字符数目。如果是 0,返回空字符串 "";如果大于或等于字符串中的字符总数,则返回整个字符串。 |
Round | Round(数值表达式) | 返回经过四舍五入的数值。 |
RTrim | RTrim(字符串表达式) | 返回不带后缀空格的字符串。 |
Sgn | Sgn(数值表达式) | 返回表示数字符号的整数。 如果指定的数值表达式大于0,返回值为1;如果指定的数值表达式小于0,返回值为-1;如果指定的数值表达式等于0,返回值为0; |
Space | Space(数值表达式) | 返回由指定数目的空格组成的字符串。 |
Split | Split(原字符串, 分隔符) | 返回一个数组,数组中的每个元素都是子字符串。由这些子字符串和分隔符构成原字符串。 分隔符也是字符串类型。 |
Sqr | Sqr(数值表达式) | 返回数值的平方根。 数值表达式的值必须大于或等于零。 |
StrComp | StrComp(字符串1, 字符串2) | 返回两个字符串比较的结果。 当字符串1小于字符串2时,返回-1;当字符串1等于字符串2时,返回0;当字符串1大于字符串2时,返回1; |
StrReverse | StrReverse(字符串) | 返回字符串,此字符串与指定字符串顺序相反。 |
String | String(数量, 指定字符) | 返回具有指定长度的、重复字符组成的字符串。 指定字符可以是字符串类型表达式,若其中包含不止一个字符,则仅使用其中第一个字符。 指定字符也可以是数值类型表达式,表示字符的ASCII码。 |
Swipe | Swipe (点1的横坐标, 点1的纵坐标, 点2的横坐标, 点2的纵坐标) | 模拟手指在屏幕上的划动操作。从点1滑动到点2。 |
Tan | Tan(数值表达式) | 返回将某个角表示为弧度数值的正切值。 即取某个角并返回直角三角形两边的比值。此比值是直角三角形中该角的对边长度与临边长度之比。 将角度乘以 pi/180 即可转换为弧度,将弧度乘以 180/pi 即可转换为角度。 |
TracePrint | TracePrint(表达式) | 将表达式转换为字符串类型后,发往按键精灵手机助手,并在按键精灵手机助手的调试栏显示出来。 |
Trim | Trim(字符串表达式) | 返回不带前导空格和后缀空格的字符串。 |
UCase | UCase(字符串表达式) | 返回字符串的大写形式。 仅小写字母转换成大写字母;所有大写字母和非字母字符保持不变。 |
Vibrate | Vibrate(数值表达式) | 在具有震动功能的设备上,维持震动一段时间。 维持的时间由数值表达式指定,表示以毫秒数为单位的时间。 |
GetDeviceID | GetDeviceID | 返回设备的唯一编号 |
FindColor | FindColor | 在屏幕中指定区域内,查找是否存在某个指定颜色。若找到,将找到的点的左边置于后两个参数(通常为变量)中;如果没有找到,则后两个参数均被置为-1。 16进制颜色值可以为字符串,格式为"BBGGRR",亦可为此字符串对应的16进制数值。 查找方式为0时,表示从左上向右下查找;为1时,表示从中心往四周查找;为2时,表示从右下向左上查找;为3时,表示从左下向右上查找;为4时,表示从右上向左下查找。 相似度为0到1之间的数值。此数值为1时,屏幕上的颜色必须与指定的颜色完全一致才算找到;否则,当存在少量偏差时也算找到。此数值越小,允许的颜色偏差范围越大。 |
FindPic | FindPic | 在屏幕中指定的区域内,查找是否存在某个图片文件所指定的图像。如果找到,将找到的点的左边置于后两个参数(通常为变量)中;如果没有找到,则后两个参数均被置为-1。 16进制颜色值可以为字符串,格式为"BBGGRR",亦可为此字符串对应的16进制数值。 查找方式为0时,表示从左上向右下查找;为1时,表示从中心往四周查找;为2时,表示从右下向左上查找;为3时,表示从左下向右上查找;为4时,表示从右上向左下查找。 相似度为0到1之间的数值。此数值为1时,屏幕上的颜色必须与指定的颜色完全一致才算找到;否则,当存在少量偏差时也算找到。此数值越小,允许的颜色偏差范围越大。 支持的图片文件格式包括PNG、BMP、JPG等,推荐用PNG格式,PNG格式图片中所指定透明点表示该点不会参与匹配过程的计算,也就是该点与屏幕上的任何颜色都会匹配成功。 图片文件名如果以 "Attachment:" 开始,表明后面的部分是附件中的文件。按键精灵会自动从附件中找到该文件并进行找图,不需要将附件释放到存储卡上。 |
Delay | Delay | 脚本暂停执行一段时间。数值表达式指定了延时的“毫秒”数。例如: 1秒=1000毫秒 1分钟=60000毫秒 1小时=3600000毫秒 |
GetScreenX | GetScreenX | 返回当前屏幕的横向分辨率,即以像素数表示的屏幕宽度。 |
GetScreenY | GetScreenY | 返回当前屏幕的纵向分辨率,即以像素数表示的屏幕高度。 |
GetScreenColorDep | GetScreenColorDep | 返回当前屏幕的颜色深度,即每个像素用多少个二进制位(Bit)表示,通常屏幕的颜色深度为16或24或32。 |
GetTempDir | GetTempDir | 返回存储卡上按键精灵的临时文件目录,可以在此目录中进行文件操作。 |
ColorToRGB | ColorToRGB | 把颜色分解为红、绿、蓝三个分量,分别保存在变量R,变量G,变量B中。 16进制颜色值可以为字符串,格式为"BBGGRR",也可以为此字符串对应的16进制数值。 |
ColorDiff | ColorDiff | 返回两个颜色的红、绿、蓝三个分量的差值之总和。 |
GetPixelColor | GetPixelColor | 返回屏幕上指定点的颜色。由两个数值型表达式指定该点的横坐标和纵坐标(以像素为单位)。 返回的颜色值也是数值型。 |
InputText | InputText | 在当前窗口中输入文字。例如:InputText "你好,我是按键精灵"。 |
KeyPress | KeyPress | 先“按下”再“弹起”键,模拟我们平时的按键操作。 指定的按键可以是字符串类型,表示某个键的名字,也可以是数值类型,表示某个键的编码。 |
KeyDown | KeyDown | “按下”键,模拟我们平时的“按下”操作 指定的按键可以是字符串类型,表示某个键的名字,也可以是数值类型,表示某个键的编码。 |
KeyUp | KeyUp | “弹起”键,模拟我们平时的“弹起”操作 指定的按键可以是字符串类型,表示某个键的名字,也可以是数值类型,表示某个键的编码。 |
KillApp | KillApp | 指定某个应用程序的包名,关闭这个应用程序。 |
PlaySound | PlaySound 文件名 | 播放指定的音频文件,其中文件名为字符串类型的表达式,指明了音频文件的存储位置。 |
Rnd | Rnd | 返回一个小于 1 但大于或等于 0 的随机数。 在调用 Rnd 之前,先使用 Randomize 语句初始化随机数生成器。 要产生指定范围的随机整数,请使用以下公式: Int((upperbound - lowerbound + 1) * Rnd + lowerbound) 这里,upperbound 是此范围的上界,而 lowerbound 是此范围内的下界。 |
RunApp | RunApp | 指定某个应用程序的包名,启动这个应用程序。 |
ShowMessage | ShowMessage | 在屏幕上显示提示信息,此信息将会维持一定时间后自动消失。 如果提示信息不是字符串类型,会自动转换为字符串类型进行显示。 |
SnapShot | SnapShot 文件名 | 截屏并保存为PNG格式的图片文件。 |
Time | Time | 返回当前系统时间。 |
Touch | Touch 横坐标, 纵坐标, 持续时间 | 点击屏幕上的指定位置,并持续按住一段时间再松开。 |
Tap | Tap 横坐标, 纵坐标 | 短暂点击屏幕上指定的位置 |
新增命令hot |
KeepCapture | call KeepCapture() 或 变量=KeepCapture() | KeepCapture的作用是截一次图,并把截图结果暂时保留下来,后续的找图、找色、取色都会直接从这个截图里面操作。而不会重新截图。此命令激活会大大加快后续的找图找色指令速度和效率! |
ReleaseCapture | ReleaseCapture和KeepCapture成对使用,解除KeepCapture的效果,也就是说,后续的找图、找色、取色每次都会重新截图 | ReleaseCapture和KeepCapture成对使用,解除KeepCapture的效果,也就是说,后续的找图、找色、取色每次都会重新截图 |
KeepScreen | KeepScreen Bool类型表达式 | 当指定的Bool类型表达式为True的时候,保持屏幕常开状态;否则,关闭屏幕常开功能(屏幕会自动关闭)。 |
ShowMessage | ShowMessage 提示信息 | 在屏幕上显示提示信息,此信息将会维持一定时间后自动消失。 如果提示信息不是字符串类型,会自动转换为字符串类型进行显示。 |
Swipe | Swipe 点1的横坐标, 点1的纵坐标, 点2的横坐标, 点2的纵坐标 | 模拟手指在屏幕上的划动操作。从点1滑动到点2。 |
Dim 移动版必须要声明变量才能使用。(PC按键无需声明) | Dim 变量1, 变量2 ... | 定义一个或多个变量。 |
TouchDown | TouchDown 横坐标,纵坐标 | 按下屏幕上指定位置的点(横坐标,纵坐标) |
TouchMove | TouchMove 横坐标,纵坐标 | 模拟滑动操作,将按下的点滑动至屏幕上的指定的位置(横坐标,纵坐标),滑动前需要先调用前需要先调用touchDown函数。 |
TouchUp | TouchUp | 弹起touchDown函数按下的点,一般与touchDown函数匹配使用。 |
[backcolor=rgb(254, 254, 233)] 2014-3-6 10:27 上传 下载附件 (51.55 KB)
以天天爱消除作为例子,以往使用找色方式制作刷分脚本,在识别颜色过程中,脚本运行逻辑的流程繁琐,反复截图的过程也是较慢的,例如,49个方格便需要截图并取色49次,再进行逻辑判断执行。 然而通过目前新增的两条命令语句,在上述同样的场景当中,对比原先找色的写法,同样是取色49次,但截图只有一次,可以有效增加49倍效率,当截图中获取的命令执行完毕后,再重新截图开始执行,合理重复这两个动作,因此将大大提高效率与速度。 |