1#
本帖最后由 兄弟工程师05 于 2014-8-21 18:03 编辑

按键精灵Android版:MQ 语言介绍(命令大全



MQ是按键精灵针对旗下移动产品而设计的全新脚本开发语言。语言支持全中文阅读脚本,上手简单,易学易用。MQ语言的基本特性如下:


数据类型
在MQ语言里,数据类型包括如下5种:
Null不包含任何有效数据
Boolean仅包含True和False两个常数
Integer32位有符号整数,范围为-2,147,483,648 到 2,147,483,647 之间
Float双精度浮点数,负数范围从 -1.79769313486232E308 到-4.94065645841247E-324,正数范围从 4.94065645841247E-324 到1.79769313486232E308
String字符串


MQ语言为动态类型,即定义变量时并不指定类型,在给变量赋值时才确定类型,并且类型随时可以通过赋值操作而变化。

常量
MQ语言中,用户可直接在脚本内写入没有命名的常量的,具体类型与写法如下:
整数型可直接输出整数数字,如100;亦可加&H前缀,表明该常量为16进制数字,如 &H64。
浮点型可直接输出小数点数字,如3.1415;亦可采用E分隔整数和底数部分,如314.15e-2。
字符串型凡采用一对双引号包含的内容均被视为字符串型常量。其中允许使用转义字符包括有:'\b' (退格), '\f' (表单), '\n' (换行), '\r' (回车), '\t' (横向制表), '\v' (纵向制表), '\\' (反斜杠), '\" '(双引号), 以及 '\' '(单引号)。另外也支持反斜杠加数字来描述一个字符。(注意,如果需要在这种描述方法后接一个是数字的字符,那么反斜杠后必须写满三个数字)
MQ语言中有一下已经预先定义好的常量,目标包括True和False(不区分大小写),今后还会增加。


变量
MQ语言的命名方式如下:

变量名不区分大小写,同时关键字(如If、Dim)与子程序的名字也无须区分大小写。

变量名、关键字及子程序的命名同时支持中文及英文,除了第一个字母外,后续内容还可以用数字。

变量在使用前必须用Dim语句定义,但Dim语句不必指定类型。声明多个变量时,使用逗号分隔变量。例如: Dim Top, Bottom, Left, Right, 上, 下, 左2, 右1。

变量的作用域由声明它的位置决定。如果在子程序中声明变量,则只有该子程序中的代码可以访问或更改变量值,此时变量具有局部作用域并被称为局部变量。如果在子程序之外声明变量,则该变量可以被当前脚本的所有子程序所识别,称为全局变量。

变量还可以定义为数组的形式,数组可以是一维的,也可以是多维的,数组的每个维度的索引都是从0开始的正整数,当定义一维数组时,可以指定数组的初始元素个数,也可以不指定。如:
Dim Array()
Dim Array(10)

上述例子都可以定义一个一维数组。但即使指定了数组的初始元素个数,以后也可以随时增加新的元素(直接访问新的元素即可)。当定义多维数组的时候,则必须指定数组在每个维度的初始元素个数,各个维度的初始元素个数之间用逗号分隔,如:
Dim TwoDemensionArray(2,2)
目前,多维数组暂时不支持增加新的元素,也不支持ReDim语句,待以后再支持。

版本更新内容
从零学起之安卓篇《版本1.3.1命令更新介绍:GetPixelColor\WriteConfig\ReadConfig》
从零学起之安卓篇《多点触屏控制命令介绍:TouchDown\TouchMove\TouchUp》

运算符

变量和常量之间采用运算符连接后,称为表达式。MQ语言支持的运算符包括:


运算符

含义

+

加法运算

-

二元运算符:减法

一元运算符:负号

*

乘法运算

/

除法运算

Mod

整除取余

^

取幂

&

字符串连接

=

赋值

例如:当一个语句为X=Y

等于(当用于表达式内部时)

<>

不等于

>

大于

<

小于

>=

大于等于

<=

小于等于

Not

逻辑非

And

逻辑与

Or

逻辑或


基本语句


MQ的基本语句如下:

注意!以下标红为按键精灵(安卓版)新增的相关命令语句,包含部分有改动的语句


格式

解释

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

IfElseIf语句结合,进行条件判断。

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 ...

定义一个或多个变量。


内置命令

MQ语言中已经包含了下列名称的子程序(也称为内置命令),在脚本中可以随时调用。


名称

格式

解释

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(数值表达式</