Q语言是什么资料_第1页
Q语言是什么资料_第2页
Q语言是什么资料_第3页
Q语言是什么资料_第4页
Q语言是什么资料_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Q语言是什么

Q语言是什么?Q语言是在VBScript的基础上发展起来,专

用于按键精灵系列产品(包括但不限于按键精灵、按键小精灵、简

洁游等)的一种易学易用、功能强大的脚本语言。

Q语言以VBScript为基础,去掉了少量不重要的功能,且增

加了许多更易于运用,更符合国情的新功能。

Q语言在按键精灵8.0中首次引入,与按键精灵7.x之前

所运用的脚本语言基本保持兼容。

无论对于老版本按键精灵的资深脚本作者,还是对于完全没有

用按键精灵写过脚本的新手,都只须要简洁的适应和体会后,即可

轻松上手。

Q语言有哪些特点?我们希望我们希望Q语言成为一

门更接近中国人说话的自然语言,那就是汉语。

让Q语言来学习和适应人话,而不是让人去学习机语,这

是Q语言设计的最高宗旨和终极目标。

因此,Q语言会供应下面的吩咐:

1.按A键10次2.鼠标移动到坐标100,1003.打开

QQ4.在屏幕范围内查找颜色为OOOOff的点让人享受对电脑发号

施令的快感是Q语言的任务,让人不再做电脑的奴隶是Q语言的

使命。

假如肯定要让我们给Q语言加一个特点,那肯定就是人性。

做最人性的计算机语言。

我们不希望我们不希望让Q语言看起来像一门编程语言,

所以我们坚决不情愿拿一些高级语言的特点来包装自己,譬如面对

对象。

我们也不希望让Q语言实现中文编程的宏大目标,已经有人

在做而且做的很好,我们激励中文编程但不会去仿照。

为什么要用Q语言?玩电脑,不要被电脑玩!Q语言可

以让您对电脑发号施令,让电脑去处理那些繁琐、重复的工作。

将您解脱出来享受更简洁、更健康的电脑生活。

请记住,一切让您觉得有些烦的电脑操作都可以找Q语言免

费帮忙。

如何运用Q语言?您只须要下载支持Q语言的按键

精灵8.0版软件,即可采纳动作录制+全界面吩咐操作的方式编写

Q语言脚本。

按键精灵下载地址:

-华丽的分割线,以下是Q语言编程资料,供应

应高级脚本作者运用---------Q语言的脚本结构采纳Q

语言编写的脚本,其结构比较简洁。

总体上来说,一个脚木中的全部内容可以分为两大部分,一

部分是子程序,一部分是主程序。

子程序是指一对SubEndSub或FunctionEndFunction组合之

间的内容,其他内容都称为主程序。

子程序和主程序可以穿插编写,比如下面的脚本是合法的:

1.Subx2.子程序内容3.EndSub4.主程序内容5.

Suby6.子程序内容7.EndSub8.主程序内容

但是,子程序不行以嵌套,即子程序中不能再定义子程序,比如

下面的脚本是非法的:

1.Subx2.子程序内容3.Suby4.

子程序内容5.EndSub6.子程序内容7.EndSub

脚本在执行的时候,总是从第一条语句起先,当遇到子程序时,将

自动跳过,只有遇到主程序的语句时,才会接着执行。

当然,子程序可以被主程序或其他子程序调用,这点和一般

的VBScript没有区分。

脚本在执行完最终一条语句,或者执行到EndScript

语句,或者遇到如用户按下中止热键等外部事务时,将停止执行。

脚本中任何以或者〃开头,至行尾为止的内容,

都被看作是注释,在执行过程中会被忽视。

Q语言的语法分类采纳Q语言编写的脚本,

语法遵循两套不同的规则,一类是在VBSBeginVBSEnd之间包含的

内容,称之为VBS语法规则;另一类则是在VBSBeginVBSEnd之

外的内容,称之为Q语法规则。

VBS或Q语法规则与上文所述的主程序和子程序并无任何因

果关系,换言之,无论是主程序还是子程序,都既可以运用VBS语

法,也可以运用Q语法。

VBS语法规则与微软设定的VBScript语法完全相同,它不

支持诸如Goto等在VBScript中并不包含的语法,也不支持

ImportUserVar、BeginThread等按键精灵特有的功能,但由于

采纳VBS语法规则的脚本具有较高的执行速度,并且也支持基本的

按键精灵功能如KeyPress、MoveTo等,因此仍具有较大的好用价

值。

当然,Q语法在按键精灵中应用更为广泛,因为按键精灵的

几乎全部功能都是由Q语法承载的,因此具有强大的脚本编写实

力。

下文介绍的各项语法特性,如无特殊说明,都是指Q语法规

则。

变量和VBScript类似,Q语言支持变量定义(包

括数组),且全部的变量都只有一种类型,即Variant型(变体

类型)。

Q语言中定义变量的方法有三种,一种是采纳Dim语句定

义,如Dima,b,c;其次种是采纳UserVar语句定义,UserVar语

句的用法后文详述;第三种是采纳DimErw语句定义,如DimEnv

a,b,co

变量也可以不定义而干脆运用(类似于VBScript),但在定义

变量时,VBScript中的Private和Public关键字并不起作用。

变量的类型和作用域:

变量的类型分三种:

局部变量、全局变量和环境变量,全部在子程序中用Dim定

义的变量(包括子程序的参数)都是局部变量,全部在主程序中用

Dim或UserVar定义的变量,或者没有定义而干脆运用的变量都是

全局变量,全部用DimEnv语句定义的变量都是环境变量。

局部变量和全局变量的含义VBScript类似:

局部变量只在子程序中有效,退出子程序时将被清除;环境

变量在整个脚本中都有效。

环境变量是Q语言特有的,它在某个产品所运行的全部脚本

中都具有相同的值。

环境变量初始化之后就始终保留。

变量作用域的定义举例:

1.UserVarvar=l自定义变量2.Dimxl3.x2=24.

DimEnvENV_VAR5.SubTest6.Dimy7.z=38.

Returnvar是全局变量:

因为用Uservar定义的都是全局变量xl,x2是全局变量:

因为在主程序中定义的变量都是全局变量,不管是否用了DIM

关键字ENV_VAR是环境变量:

环境变量可以在多个脚本线程或者多个脚本之间共享y是局

部变量:

因为在子程序中运用DIM语句定义,只在子程序中有效z是

全局变量:

在子程序中没有用DIM进行定义的变量都是全局变量。

变量的命名规则:

变量和常量,以及子程序的名称,还有后文将提到的Goto

语句运用的标号,都具有完全相同的吩咐规则:

可以采纳英文大小写字母或汉字开头,后面可以运用英文大小

写字母或汉字或阿拉伯数字。

如下血的变量定义是合法的:

1.DimHello2.Dim你好3.DimHil2345但下面的变量

定义不合法,因为变量命名不正确:

1.Dim12345Hi2.Dim3.He=二lloQ语言中关于数组的

运用和规定与VBScript完全相同。

变量功能和01版的主要区分:

在01版的子程序中运用Dim定义的变量也是脚本级的,这

样的话由01版自动转换为09版的脚本运行结果就可能不同。

例子脚本:

1.Gosubtest2.MessageBoxx3.Subtest4.dim

x5.x=26.Return转换方法:

假如在SUB里用DIM定义了一个变量,我们干脆将DIM这

一行删掉,变量就自动变为全局的。

但要考虑DIM前后有其他语句的状况。

常数和运算符Q语言中关于常数、运算符的运用和

规定都与VBScript完全相同。

除了可以用Const定义常数之外,Q语言与VBScript一样,

都已经预定义了一系列的常数,如vbCr.vbCrLf等。

语句和VBScript一样,在Q语言中支持下列语

句。

Dim/ReDimEraseCallSetRandomizeConstExit

Do/For/Sub/FunctionDoWhile/UntilLoopDoLoopWhile/Until

WhileWendForNextIf/lfColorThenElselfThenElseEndIfSelect

CaseCaseCaseElseEndSelect上述语句的用法与VBScript

中完全一样,但也允许存在下列的改变:

1)Call语句与VBScript中的调用规则完全相同:

当调用采纳SabEndSub定义的子程序时,只需过程名及全部

参数值,参数值之间运用逗号分隔。

不需运用Call语句,但假如运用了此语句,则必需将全部

参数包含在括号之中;反之,当不运用Call语句进行调用时,括

号被省略。

当调用的子程序没有参数也没有返回值时,可以将

CallProcess()简写为GosubProcesso

这种简写只是为了保持兼容性而保留,今后不举荐运用。

2)WhileWend语句与VBScript中的运用方法完全相

同,但Wond可以用EndWhile代替。

我们举荐用Wend,目前EndWhile只是为了保持兼容性而保留。

3)ForNext支持下面两种在VBScript中的用法(斜体

表示这里是一个变量或者表达式,方括号表示可选内容):

Forcounter=startToend[Stepstep]NextForEach

elementIngroupNext还支持下面的用法:

ForcountNext第三种用法是Q语言中特有的,详

细用法和7.x版本之前的按键精灵一样。

在这种用法中,Next可以用EndFor代替。

我们举荐用Next,目前EndFor只是为了保持兼容性而保留。

4)If/IfCclorThenElselfThenElseEndIf主要支持以

下两种用法IfThen[ElseIfThen][Else]EndIf

IfColorThen[ElseIfThen][Else]EndIf其中第一种用法和

VBScript中的条件分支用法完全一样。

其次种用法则是Q语言中特有的,可以看作是专用于推断颜

色的特例。

无论上述哪种用法,都可以省略Then,也可以用Endlf

代替EndIfo

当然,我们仍旧举荐与VBScript尽量保持一样,即保留

Then,并用EndIf。

之所以仍旧支持Endlf并允许省略Then,都是为了保持兼容

性。

下面的语句是VBScript中所没有的,属于Q语言

中特有的内容。

1)DimEnv格式:

DimEnvvarl[,var2,var3]含义:

定义环境变量,同名的变量将在同一产品(按键精灵/按键小

精灵/简洁游)的全部脚本中共享。

备注:

varl,var2可以是任何符合变量命名规则的变量名,建议在

命名是加上env_前缀,表示这是个环境变量,和其他变量进行区

分。

例如envxueo

兼容性说明:

DimEnv定义的变量就是以前多线程中运用的SetEnv和

GetEnv定义的变量。

2)UserVar格式:

UserVarvar[=default]descriptionUserVarvar=

DropList{textl:valuel|text2:value2}[二default]

description含义:

定义可由用户设置的变量,详细含义和按键精灵7.x之前类

似,不再赘述。

备注:

var可以是任何符合变量命名规则的变量名。

description,text1,text2通常是固定字符串,因此必需

用双引号。

如UserVar变量二1设置内容default,valuel,value2通常

是固定的字符串或者数值,当运用字符串时,也必需用双引号。

兼容性说明:

这个吩咐在按键7的基础上做了优化。

假如用户加上双引号,那么强制当作字符串运用,解决首字

符为0时会自动推断为数字的问题。

3)Rem格式:

Remlabel含义:

定义标号label,作为Goto语句的目标地址。

详细含义和按键精灵7.x之前类似,不再赘述。

备注:

label即标号可以是任何符合变量命名规则的名称。

依据变量命名规则(如前文所述),如Rem标号

是合法的但Rem0000是不合法的,因为首字符不能是数

字且Rem一标号一也是不合法的,因为只支持英文字母、数

字和汉字,不支持其他符号。

因为REM、变量和SUB的命名采纳同一套规则,因此我们将

调整为统一支持□_这3个符号。

但这3个符号的支持仅作兼容,不做举荐。

4)Goto格式:

Gotolabel含义:

跳转到标号labelo

详细含义和按键精灵7.x之前类似,不再赘述。

备注:

Goto后面的label必需用Rem语句定义过,且必需都定义

在主程序中,或者都定义在同一个子程序中。

5)Import格式:

Importfilename含义:

导入插件或脚本库,filename表示插件文件名。

假如已经采纳Import语句导入了插件,则以后插件的调用都

可以简写为:

Call插件名称,功能名称(参数列表)否则,假如没有提前用

Import语句导入,则必需在调用时增加Plugin.前缀,写为:

CallPlugin.插件名称,功能名称(参数列表)留意这

里对插件的运用方法与7.x版本相比有所区分,脚本库lib的运

用方法和插件一样。

备注:

filename即插件文件名通常是固定的字符串,因此必需用双

引号。

6)EndScript格式:

EndScript含义:

和按键精灵7.x之前类似,脚本执行到这里即无条件停止。

7)BeginThread格式:

BeginThreadsubname含义:

启动一个线程,subname是一个脚本中已经定义的子程序的名

字,详细含义和按键精灵7.x之前类似。

备注:

由于subname是一个子程序的名字,因此不能加双引号(留

意这里和按键精灵7.x之前有所区分),且subname的命名符合

前文所述的变量命名规则。

8)VBSBeginVBSEnd格式:

1.VBSBegin2.3.4.VBSEnd含义:

在VBSBeginVBSEnd中的内容只遵循VBScript语法,而不支

持Q语言语法,也就是说,不能运用Q语言语法中特有的语句

(但支持基本的按键精灵功能如KeyPress、MoveTo等)。

VBScript语法的优势是执行速度比较快,可以在对速度有特

殊要求的场合运用。

子程序和VBScript类似,Q语言支持Sub和

Function这两种子程序,两者的区分在于后者有返回值而前者没

有。

Sub子程序由关键字SubEndSub以及中间的多行语句构成,

Function由关键字FunctionEndFunction以及中间的多行语句构

成。

在Function子程序中,允许通过给与Function子程序同

名的隐含变量赋值而设置返回值。

当Sub或Function被调用时:通常当其中的语句执行完以后

会自动返回调用处,同口寸,也允许在Sub或者Function子程序

中分别运用ExitSub/ExitFunction,从而在子程序执行未结束

时也能跳出子程序。

Sub或者Function子程序都可以运用参数,参数由括

号内的一组变量名组成,也就是说,参数的命名规则同变量命名规

则一样,允许运用英文字母和中文,以及后续的数字。

对于子程序的参数,Q语言和VBScript最大的区分在于,Q

启言只支持传值,不支持传引用,因此也不支持参数的ByVai或

ByRef等附件说明,而VBScript则可以通过在参数前面增加ByVai

或ByRef的附加说明来选择传值还是传引用。

Q语言不支持传引用由于技术缘由造成的,今后会试图增加这

项功能。

总的来说,对于子程序的支持,Q语言和VBScript有以下

几点不同:

1)Q语言不支持参数传引用,仅支持参数传值,而

VBScript两者都支持。

2)VBScript的子程序(包括Sub和Function)没有参数

时,仍旧必需写一对括号,而Q语言允许没有括号。

当然,这种写法主要是为了兼容性的考虑,今后我们还是举

荐有括号的写法。

如Subname的写法,在Q语言中允许,但在

VBScript中不允许。

但是,我们仍旧举荐增加括号的写法,即Subname。3)在

Q语言中,EndSub可以用Return代替。

这种写法也是为了兼容性的考虑,今后我们将举荐运用比较正

规的EndSub按键精灵供应了一系列以鼠标键盘模拟为代表的

基本功能,全部这些功能都以预定义的子程序的形式出现。

目前包括:

KeyPress>KeyDown、KeyUp>LeftClick>RightClick、

MiddleClick>LeftDoubleClick、LeftDown>LeftUp>RightDcwn>

RightUp、MoveTo>MoveR、MouseWheel>KeyPressH、KeyDownH>

KeylJpH、LeftClickH、RightClickH、MiddleClickH、

LeftDoubleClickH^LeftDownH、LeftUpH、RightDownH>RightLpH>

MoveToH>MoveRH、KeyPressS、KeyDownS、KeyUpS>LeftClickS>

RightClickS>MiddleClickS^LeftDoub1eC1ickS>LeftDownS^

LeftUpS、RightDownS、RightUpS、MoveToS、MoveRS、

SetSimMode、SaveMousePos、RestoreMousePos、LockMouse、

UnlockMouse、WaitKey、GetLastKey、WaitClick>GetLastCiick>

Delay,MessageBox,Beep,SayString、PutAttachment、

TracePrint^RunApp、GetCursorPos>GetPixelColor^FindColor、

FindCenterColor、FindColorEx、ReadMemory、FindPic、

FindPicEx、GetCursorShape全部这些功能的用法都与按键精灵

7.x中基木保持一样,个别用法与按键精灵7.x相比有所调整,如

WaitKey、GetLa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论