Script Expert

请访问http://ScriptExpert.dxqsoft.com/ 获取最新版本Script Expert及信息
 

脚本使用约定:

  • 默认情况下,所有常量、变量定义的数值都被认为是十进制数值,如果需要表示为16进制数值,请在数值前添加"$"符号,如 $10=16

  • 关于取名原则,请注意,任何常量、变量、函数、跳转标记的取名不要以数字开头,并且名字中不要包含有特殊意义的符号,如“+,-,*,/,(,)"等。

  • 在脚本的大多数地方,都可以使用"//"来标记注释内容,"//"标记后面的语句(限于本行)都将被作为注释内容而被忽略 ,请注意,最好不要在SayString/Key List/Echo/Run语句后面添加"//"标记的注释

 

主程序/子程序/函数/VBScript/JavaScript/跳转

对于Script Expert来说,虽然一个前后没有任何标记,只有简单几行的脚本也是一样可以运行的,但是如果需要编写一个比较复杂脚本,则必须知道,Script Expert可以支持子程序的调用,这个特性,将可以大大的简化脚本的编写。为了这个目的,Script Expert定义了一些标记来表示主程序和子程序,以便能够从逻辑上将之清晰的区分开来。

 

主程序:

在脚本中,可以使用Main: 来表示脚本开始执行的位置,以 EndMain 来表示脚本段结束执行的位置,如果脚本中没有出现Main:/EndMain标记,则脚本的执行是从整个脚本的第一行开始 ,一直执行到最后一行结束,如果发现了该标记,则仅仅执行该标记中间的代码段。 注意:每个脚本中,应当最多仅仅出现一对Main:/EndMain标记。

 

子程序(过程):

Script Expert中定义了两种形式的子程序:
1、 以关键词“SUB”作为子程序的开始,后面跟一个空格加上一个符合命名规则的子程序名字,一个“EndSub”作为子程序块的结束标记 ,可携带若干参数,参数自动支持多种数据类型,包括数组,如:
Sub TEST(参数1,参数2,...,参数n)
……
EndSub
2、 以一个符合命名规则的名字加一个“:”做为子程序的开始,一个"EndSub"作为子程序的结束标记。如"sub1:","@SubProc:"等就是合法的子程序名字 ,此方式定义的过程,无法使用参数。
一般建议,子程序都应当放在主程序脚本段(Main:...EndMain)的外面,以便更易于维护。 调用子程序的方式很简单,可以在脚本代码的任何地方使用CALL或do命令调用。

 

函数

函数和过程很相似,区别仅仅是函数可以返回一个值
函数的定义以关键词“Function”作为开始,后面跟一个空格加上一个符合命名规则的 函数名字,一个“EndFunction”作为函数的结束标记,可携带若干参数,参数自动支持多种数据类型,包括数组,如:
Function TEST(参数1,参数2,...,参数n)
……

  set result=XXXX
EndFunction
注意,每个函数中,都有一个预先定义的用来返回值的变量“result”,该变量自动创建,无需自己定义,当需要函数返回值时,直接对“result”变量赋值即可。

 

结束语句块:

结束语句块实际上是一种特殊的子程序,该子程序会在脚本结束运行时自动被调用而不管这个脚本是以什么方式结束运行的(包括脚本代码自己中途跳出、按热键强制结束运行或正常按顺序执行完毕)。

结束语句块的定义方式如下:

Finally

......

End

灵活运用这种结构,可以让您的脚本在任何情况下结束时,都能及时的释放各种占用的资源。

 

VBScript脚本块:

VBScript语句块的定义方式如下:

VBSBegin

......

VBSEnd

在VBSBegin ... VBSEnd块内的代码应当是VBScript脚本,可以使用所有VBScript所支持的功能。

调用VBS函数时,必须使用VBSCall内置函数,请参考SE_Function.txt文档中对VBSCall函数的说明。

具体请参考附带示例脚本中关于VBScript函数的调用方法。

 

JavaScript脚本块:

JavaScript语句块的定义方式如下:

JSBegin

......

JSEnd

在JSBegin ... JSEnd块内的代码应当是JavaScript脚本,可以使用所有JavaScript所支持的功能。

调用JavaScript函数时,必须使用JSCall内置函数,请参考SE_Function.txt文档中对JSCall函数的说明。

具体请参考附带示例脚本中关于JavaScript函数的调用方法。

 

 

跳转命令:

所谓跳转,就是在脚本中预先定义一个位置,当需要的时候,可以使用GOTO命令直接跳到这个位置继续执行脚本。Script Expert中,跳转的位置定义和子程序的定义基本一样,不同是,跳转定义通常放在主程序或者子程序的内部,并且不需要使用EndSub作为结束标记。

 
定时器

从6.0版本起,Script Expert开始支持定时器功能。

利用定时器功能,可以在一个脚本中,同时执行数个相关或者无关的功能。

Define Timer <TimerName> <Interval> <Sub> [Pause]

说明:定义一个以TimerName命名的定时器,时间间隔为Interval,定时器执行子程序名为Sub

注意:可选参数[Pause],如果省略,则定时器在脚本开始时自动运行,如果指定了Pause关键词,则脚本开始执行后定时器处于暂停状态,必须使用Timer Start命令启动定时器。

Timer Stop <TimerName>

说明:终止定时器运行

Timer Start <TimerName>

说明:启动定时器

Timer Pause <TimerName>

说明:暂停定时器运行

Timer Resume <TimerName>

说明:恢复定时器运行,从上次暂停处继续执行

Timer Interval <TimerName> <Interval>

说明:设置定时器的时间间隔为Interval

举例:

//定义一个定时器T1,初始定时间隔300毫秒,定时执行子程序为onTimer
define timer T1 300 ontimer
//终止定时器工作
Timer Stop T1
//设置定时器的定时间隔为600毫秒
Timer Interval T1 600
//启动定时器
Timer Start T1

 

常量、变量和数组

Script Expert支持常量和变量的定义,有了这些特性,可以帮您制作最灵活和功能强大的脚本!

 

常量定义:

Const i = 0  ,使用Const关键字定义一个常量i,初始值为0,常量定义支持数值或者字符串。

 

变量定义:

Var i = 0 , 使用Var关键字定义一个变量i,初始值为0, 从5.0版开始,变量可以支持各种数值类型,可以是数字,也可以为字符串类型。

 

数组定义:

Array v 10,使用Array关键字定义一个数组,包含10个变量,使用该数组时,使用v[0]..v[9],注意,数组的下标必须从0开始,最大下标必须小于等于数组大小减1。比如定义数组大小为10,则可以使用的数组元素最大下标为v[9]。

 

变量的赋值:

Set VarValue = <Exp> , 将表达式<Exp>的数值传递给变量VarValue。Set是赋值操作的关键字。

举例:Set x = 2+3*2  ,将表达式2+3*2的值即8赋值给变量x。

 

内置全局变量:

KeyInterval: 默认值为100,该变量用来控制键盘按键和鼠标点击的间隔,默认情况下,鼠标/键盘按下和弹起的间隔为100毫秒,如果需要自行设置,可使用Set命令对该变量进行修改,实时生效。

 

关于自定义函数/过程及全局变量和局部变量的说明:

从7.2版本开始,脚本大师开始支持自定义函数/过程,自定义函数/过程可以支持参数,自定义函数还支持返回值,并且,自定义函数和过程的调用方式与脚本大师内置函数和插件函数的调用方式一直,完全可以支持混合表达式的计算,具体请参见附带的自定义函数及过程的示例脚本。

********************
和其他大多数大型编程语言的规定类似,变量分为全局变量和局部变量
局部变量只有某个函数或过程内部可以使用,而全局变量则在任何地方都可以使用
当局部变量与全局变量重名时,在子程序内部将优先使用局部变量而忽略全局变量
********************
脚本大师脚本规则规定,全局变量应当定义在任何其他函数/过程/主函数(main: ... End)之外
而定义在函数/过程/主函数(Main: ... End) 之内的任何变量,都作为局部变量,只能用于所属函数/过程的范围。
********************
自定义函数与过程的区别仅仅在于过程没有返回值,而函数是可以返回值的
自定义函数的调用方法与脚本大师内置函数和插件函数完全一样,因此自定义函数完全可以无缝的与内置函数和插件函数混合使用进行表达式计算。
********************
自定义函数的返回值请使用专用的返回值变量<result>
返回值变量result是局部变量并且是自动创建的,函数执行完返回数值后,自动释放。
注意,多个自定义函数使用相同的返回值变量result,不会互相影响。
当调用一个自定义函数或过程, 参数使用了变量,那么这个变量可用作参数的返回。
所有自定义函数和过程的参数及返回值,都可支持数组
********************
原有的调用子程序的CALL命令,与调用函数的do命令,在7.2后不再有区别,虽然仍分别保留CALL和DO命令,但功能上是一样的。
 

 

表达式计算

Script Expert中允许进行表达式的计算,支持四则运算,并且支持嵌套,此外,还内置支持了很多常见的函数。

Script Expert支持的运算符有

+ : 加法运算

- :减法运算

* :乘法运算

/ :除法运算

% :取余数运算

^ :开方运算

& :逻辑“与”

| :逻辑“或”

举例:Set VarValue = sin(x)+cos(x)/2^3

说明:可以支持的函数及表达式大致列举如下

x^y(x的y次方) /Trunc(取整) /Round(四舍五入取整) /Random(生成随机数)/ABS(绝对值)/ColorDiff(比较颜色的差异度) /SQR/SQRT/LN/LG/LOG/SIN/COS/TAN/TG/CTG/SEC/CSC/ARCSIN/ARCCOS/ARCTAN/SINH/COSH/

TANH/ARCSINH/ARCCOSH/ARCTANH等, 详见SE_Functions.txt文档。

部分举例说明:

Set x=2^3  //x的值将为8

Set x=Trunc(2.8)  //x的值将为2

Set x=Round(2.8)  //x的值将为3

Set x=Random(100) //x的值将为一个0-99的随机数

Set x=ABS(-3)     //x的值将为3

Set x=ColorDiff(c1,c2)   //比较两个颜色c1和c2的差异度

逻辑运算符使用举例:

if ((a>b)&(c<d))|(e<>f)

...

endif

 

键盘命令

键盘命令可以用来模拟键盘的各种动作。

格式:Key <Action> <Virtual Key> <Repeat Times> <Wait>
可以支持的Action动作有:Down/Up/Press
举例:

Key Down 13 1 wait
按下回车键,重复1次,等待消息处理结束
Key Up 13 1 wait
弹起回车键,重复1次,等待消息结束
Key Press 13 3 (此处省略了等待命令Wait)
按下并且弹起回车键,重复3次,不等待消息结束

 

特殊键盘脚本命令:Key List <按键组>

Key List 命令可以一次性输入一串按键,并且可以直接使用字符来表示按键,而不需要记住单个按键的数字代码,因此是一个非常常用的命令。

举例:
Key List abc~+{abc}
连续按下并弹起abc三个键,接着按回车键,再按住Shift+abc
Key List 脚本可以支持各种繁复的按键组合,详细说明,请参见下面的专门介绍。

注意:Key List 命令不支持和变量一起使用。

 

键盘/鼠标检测命令

键盘/鼠标检测命令可以用来在脚本运行时检测键盘按键或者鼠标动作,并根据检测结果判断如何进一步的脚本执行。

Key StartMon   : 打开键盘/鼠标动作检测机制

Key StopMon    : 关闭键盘/鼠标动作检测机制

Key Wait <KeyCode> : 一直等待键盘按键或者鼠标动作,返回的按键代码保存在变量KeyCode中

Key Scan <KeyCode> : 扫描键盘按键或者鼠标动作,并不等待,如果发现了按键或鼠标动作,返回相应的按键代码保存在变量KeyCode中,否则返回0

 

说明:每次需要使用Key Wait/Scan进行检测前,注意必须先使用Key StartMon脚本打开相应的检测功能,而且当不需要再使用Key Wait/Scan检测按键时,应当使用Key StopMon命令关闭检测功能

    对于键盘按键返回的KeyCode代码就是各个按键的标准代码,可以作为Key Press等命令的参数直接使用,而对于鼠标按键返回的KeyCode代码,则为ScriptExpert定义的代码,注意:鼠标返回的KeyCode代码肯定是大于255的,这可以作为区别鼠标代码和键盘代码的方法

鼠标代码如下,可直接在脚本中使用,具体例子请参见demos目录下的相关例子。

Key_MouseLDown         : 鼠标左键按下

Key_MouseLUP           : 鼠标左键弹起

Key_MouseRDown         : 鼠标右键按下

Key_MouseRUp           : 鼠标右键弹起

Key_MouseMDown         : 鼠标中键按下

Key_MouseMUp           : 鼠标中键弹起

Key_MouseWheel         : 鼠标滚轮滚动

  

鼠标命令

鼠标命令可以用来模拟鼠标的各种动作。主要分为鼠标点击和鼠标移动两种脚本。

鼠标点击脚本格式:Mouse <Action> <Repeat Times> <x> <y>
说明:控制鼠标在x, y坐标处进行相应动作,可以支持的Action动作有:
LDown/LUp/LClick :  鼠标左键按下/弹起/点击(可以省略x,y坐标)
RDown/RUp/RClick :  鼠标右键按下/弹起/点击(可以省略x,y坐标)
MDown/MUp/MClick :  鼠标中键按下/弹起/点击(可以省略x,y坐标)
Repeat Times表示重复按键次数。

举例:

Mouse LDown 1 10 10

在屏幕坐标10 10处,按住鼠标左键

Mouse RUp 1

在当前鼠标所在位置,弹起鼠标右键


鼠标移动脚本格式:Mouse <Action> <x> <y>
说明:可以提供两种移动模式:绝对移动和相对移动,根据<Action>来确定。
MoveTo : 鼠标移动到屏幕绝对坐标x,y处
MoveR : 鼠标相对当前位置移动x,y的距离

 

Get命令

Get ColorPos <ColorRGB> <x1> <y1> <x2> <y2> <x> <y>

说明:该命令搜索屏幕上(x1,y1)(x2,y2)范围中是否有指定颜色点<ColorRGB>,如果找到,则将该点坐标保存在变量<x> <y>中,如果没找到,则<x><y>的值都为-1。

举例:

Get ColorPos $FFFFFF 0 0 1023 767 x y

 

Get ColorPosEx <ColorRGB> <x0> <y0> <r> <x> <y>

说明:该命令搜索屏幕上圆心(x0,y0)半径(r)范围中是否有指定颜色点<ColorRGB>,如果找到,则将该点坐标保存在变量<x> <y>中,如果没找到,则<x><y>的值都为-1。

举例:

Get ColorPosEx $FFFFFF 512 384 512 x y

 

Get PicPos <PicFile> <x1> <y1> <x2> <y2> <x> <y> <Diff>

说明:该命令搜索屏幕上(x1,y1)(x2,y2)范围中是否有指定的图片<PicFile>,如果找到,则将该点坐标保存在变量<x> <y>中,如果没找到,则<x><y>的值都为-1。<Diff>指定图形识别的差异度,取值应当在0..1之间,该值越小,则图象识别的精确度越高,反之则越低。

 

Get PicPosEx <PicFile> <x0> <y0> <r> <x> <y> <Diff>

说明:该命令搜索屏幕上圆心(x0,y0)半径(r)范围中是否有指定的图片<PicFile>,如果找到,则将该点坐标保存在变量<x> <y>中,如果没找到,则<x><y>的值都为-1。<Diff>指定图形识别的差异度,取值应当在0..1之间,该值越小,则图象识别的精确度越高,反之则越低。

注意:<PicFile>指定需要识别的图形文件,请注意,该文件最好以24bit格式保存,您可以将PicFile保存在某一个目录中,或者直接保存在SE主程序或者调用该图片的打包EXE脚本所在的目录,另外,如果需要使用透明色,请将图片上除了需要的图形之外的面积涂上另一种单一的颜色,Script Expert会自动将这些颜色识别为透明色。

举例:

Get PicPos 1.bmp 0 0 1024 768 x y 0.1

该脚本在(0,0)(1024,768)范围内搜索指定图片1.bmp的图形,如果发现屏幕上有该图形,则将该图形在屏幕上的坐标保存在变量<x> <y>中,如果没找到,则<x><y>的值都为-1。这里指定图形识别的差异度为0.1。

Get PicPosEx 1.bmp 512 384 512 x y 0.1

该脚本在圆心(512,384)半径(512)范围内搜索指定图片1.bmp的图形,如果发现屏幕上有该图形,则将该图形在屏幕上的坐标保存在变量<x> <y>中,如果没找到,则<x><y>的值都为-1。这里指定图形识别的差异度为0.1。

提示:为了提高代码的运行速度,请尽量减少扫描的面积,并且使需要识别的bmp图片尽可能的小。

 

Read/Write - 屏幕抓点、读取/写入前台窗口内存数据

Script Expert可以直接读取屏幕上某点的RGB颜色和前台窗口进程的内存数据。利用读写内存的特性,甚至可以制作游戏的修改脚本哦。

 

读取屏幕点颜色脚本格式:Read Color <x> <y> <VarValue>

说明:读取屏幕上x,y坐标点的颜色,并将结果保存到VarValue里,注意,这里的VarValue必须是脚本中定义过的变量。

 

读取前台窗口内存数据的脚本格式:Read Mem <ValueType> <Address> <VarValue>

说明:读取前台窗口内存中<Address>地址处的数据,读取的数据类型根据<ValueType>确定,可以是Byte/Word/DWord/Float四种类型。注意:这里的VarValue必须是脚本中定义过的变量。

 

读取当前屏幕上鼠标位置的脚本格式:Read MousePos <x> <y>

说明:该脚本读取屏幕上当前鼠标所在位置的坐标,并将读取的值保存在x,y变量中。

 

写入前台窗口内存数据的脚本格式:Write Mem <ValueType> <Address> <Value>

说明:将Value数值写入内存中的<Address>地址,<ValueType>表示写入内存的数值类型,可以是Byte/Word/DWord/Float四种类型。

 

 If条件判断

Script Expert支持条件判断的脚本,格式如下:

If <逻辑判断语句>

...<脚本段1>...

Else

...<脚本段2>...

EndIf

说明:根据逻辑判断语句来确定执行<脚本段1>的语句还是<脚本段2>的语句。可支持无限级嵌套。

举例:

if x<y

  SayString x<y

else

  SayString x>=y

EndIf

 

虽然,我们可以通过Read Color/Mem <...>先读取屏幕点颜色或者内存数据,然后利用变量进行比较判断,但作为一种经常用到的脚本,Script Expert也设计了专门的语句格式以便简化脚本的编写。

判断颜色的脚本格式:

If Color <x> <y> <op> <ColorRGB>

  <...>

Else

  <...>

EndIf

判断内存的脚本格式:

If Mem <ValueType> <Address> <op> <Value>

  <...>

Else

  <...>

EndIf

注:<op>是逻辑操作符,可以是=(等于),>(大于),<(小于),>=(大于等于),<=(小于等于),<>(不等于)

<ValueType>表示数值类型,可以是Byte/Word/DWord/Float,<Address>表示内存地址 。

 

 

为了更好的帮助您扫描屏幕上的点的颜色,Script Expert还提供以下脚本:

If MoveToColor <ColorRGB> <x1> <y1> <x2> <y2>

  <...>

Else

  <...>

EndIf

说明:该脚本的功能为寻找(x1,y1)(x2,y2)范围内的第一个颜色为指定<ColorRGB>的点,并将鼠标移动到该点。

举例:

If MoveToColor $FFFFFF 0 0 1024 768

  Mouse LClick 1

EndIf

该脚本在(0,0)(1024,768)范围内寻找第一个颜色为$FFFFFF的点,如果找到,则自动会将鼠标移动到该点,并点击鼠标左键(Mouse LClick 1)。

 

以圆形方式从内而外的搜索方式:

If MoveToColorEx <ColorRGB> <x0> <y0> <r>

  <...>

Else

  <...>

EndIf

说明:该脚本的功能为寻找以(x0,y0)为圆心,半径(r)范围内的离圆心最近的第一个颜色为指定<ColorRGB>的点,并将鼠标移动到该点。

举例:

If MoveToColorEx $FFFFFF 512 384 512

  Mouse LClick 1

EndIf

该脚本在(0,0)(1024,768)范围内寻找第一个颜色为$FFFFFF的点,如果找到,则自动会将鼠标移动到该点,并点击鼠标左键(Mouse LClick 1)。

提示:为了提高代码的运行速度,请尽量减少扫描的面积。

 

 

图形识别脚本:

If MoveToPic <PicFile> <x1> <y1> <x2> <y2> <Diff>

  <...>

Else

  <...>

EndIf

说明:该脚本的功能为识别(x1,y1)(x2,y2)范围内是否有指定<PicFile>的图形,如果有,则将鼠标移动到该图象处。<Diff>指定图象识别的差异度,取值应当在0..1之间,该值越小,则图象识别的精确度越高,反之则越低。

If MoveToPicEx <PicFile> <x0> <y0> <r> <Diff>

  <...>

Else

  <...>

EndIf

说明:该脚本的功能为寻找以(x0,y0)为圆心,半径(r)范围内是否有指定<PicFile>的图形,如果有,则将鼠标移动到该图象处。<Diff>指定图象识别的差异度,取值应当在0..1之间,该值越小,则图象识别的精确度越高,反之则越低。

注意:<PicFile>指定需要识别的图形文件,请注意,该文件最好以24bit格式保存,您可以将PicFile保存在某一个目录中,或者直接保存在SE主程序或者调用该图片的打包EXE脚本所在的目录,另外,如果需要使用透明色,请将图片上除了需要的图形之外的面积涂上另一种单一的颜色,Script Expert会自动将这些颜色识别为透明色。

 

举例:

If MoveToPic 1.bmp 0 0 1024 768 0.1

  Mouse LClick 1

Else

  SayString 屏幕上没有发现指定图形

EndIf

该脚本在(0,0)(1024,768)范围内搜索指定图片1.bmp的图形,如果发现屏幕上有该图形,则自动将鼠标移到该图形处并点击鼠标左键。

 

If MoveToPicEx 1.bmp 512 384 512 0.1

  Mouse LClick 1

Else

  SayString 屏幕上没有发现指定图形

EndIf

该脚本在以(512,384)为圆心,半径(512)范围内搜索指定图片1.bmp的图形,如果发现屏幕上有该图形,则自动将鼠标移到该图形处并点击鼠标左键。

提示:为了提高代码的运行速度,请尽量减少扫描的面积,并且使需要识别的bmp图片尽可能的小。

 

While 循环

While 循环格式如下:

While <逻辑判断语句>

...<脚本段>...

EndWhile

说明:While 循环的作用就是,只要<逻辑判断>语句的内容一直是True,则循环执行循环体内的脚本段。可支持无限级嵌套。

举例:

Set i=0

while i<100

  ....

  Set i=i+1

EndWhile

 

虽然,我们可以通过Read Color/Mem <...>语句先读取屏幕点颜色或者内存数据,然后利用变量进行比较判断,但是作为一种经常用到的脚本,Script Expert也设计了专门的语句格式以便简化脚本的编写。

以屏幕点颜色作为循环判断依据的脚本格式:

While Color <x> <y> <op> <ColorRGB>

...<脚本段>...

EndWhile

以内存数值作为循环判断依据的脚本格式:

While Mem <ValueType> <Address> <op> <Value>

...<脚本段>...

EndWhile

注:<op>是逻辑操作符,可以是=(等于),>(大于),<(小于),>=(大于等于),<=(小于等于),<>(不等于)

<ValueType>表示数值类型,可以是Byte/Word/DWord/Float,<Address>表示内存地址

 

For 循环

For循环格式如下:

For <循环次数>
…<脚本段>…
EndFor

说明:按照指定的循环次数,循环执行脚本段。可支持无限级嵌套。

 

延时指令

格式:Delay <毫秒数>

 

发送字符串

格式:SayString <字符串>

说明:将指定的<字符串>发送到当前焦点窗口,支持中文和英文。

格式:Echo <字符串>

说明:将指定的<字符串>发送到当前鼠标所在窗口中,支持中文和英文,并且鼠标所在窗口并不一定需要获得当前焦点。

 

输出表达式值

格式:Output <表达式>

说明:将指定的<表达式>的计算结果发送到当前焦点窗口。

 

外部调用

格式:Run <外部程序或者文件路径>

说明: 调用指定外部程序或者打开外部文件或者打开网页等,该功能与Windows开始菜单中的运行功能基本一样。

举例:

Run IExplorer.exe  //打开IE浏览器

Run http://ScriptExpert.dxqsoft.com   //打开Script Expert主页

 

扬声器发声

格式:Beep <频率> <持续时间>

说明: 驱动扬声器以指定<频率>发声,第二个参数是发声持续时间,单位毫秒,利用这个脚本,甚至可以自己编写简单的音乐哦:)。

举例:

beep 2093 100
beep 1976 100
beep 1857 100

 

锁定/解除锁定鼠标位置

格式:Lock MousePos(锁定鼠标位置)  /   Unlock MousePos(解除锁定)

说明:可以在脚本任何地方加入锁定命令,一旦执行了锁定鼠标命令,则鼠标会被锁定在当前位置,无法移动,但仍然可以点击。

 

保存/恢复鼠标位置

格式:Save MousePos(保存鼠标当前位置)   /    Restore MousePos(恢复最后一次保存的鼠标位置)

说明:如果执行了多个Save语句,则只保存了最后一个语句执行时鼠标的位置。

 

包含外部文件

格式:Include <外部文件名>

说明:Include语句的作用就是在脚本运行时直接将某段代码复制到Include语句所在的位置,并且可以直接运行,通过合理的利用包含语句,可以在一定程度上减少代码的维护工作量。


包含文件的路径有几种写法,举例如下:
绝对路径:Include "c:\Program Files\SE\Include_1.inc"

相对路径:Include "Include_1.inc"        //包含本目录下的一个文件
相对路径:Include "incs\Include_1.inc"   //包含本目录下子目录Incs中的一个文件
相对路径:Include "..\Include_1.inc"     //包含本目录上级目录中的一个文件
 

 

Key List脚本详解

 Key List脚本可以支持各种复杂的按键组合,支持特殊的按键,并且使用按键名称而不是难以记忆的按键代码,灵活利用该功能,可大大方便脚本的编写。

Key List脚本的一般用法:Key List <按键组>

按键组可按照下面的说明进行编写:

支持的修正键有:
+ = Shift
^ = Control
% = Alt

支持的特殊符号有:
~ = Enter(回车)
( = 开始定义一个组
) = 结束定义一个组
{ = 开始一个键名(具体键名见下面)
} = 结束一个键名

说明:支持所有可以用键盘输入的字符
技巧:如果要定义的按键组中有保留的字符如+,^,%,~,(,),{,} ,这些字符无法直接使用,这时可以用{和}把这些字符括起来,这样就可以正常使用这些字符了。

除了键盘可以输入的正常字符外,还支持一些特殊的键名,如下:
BACKSPACE
BREAK
CAPSLOCK
CLEAR
DEL
DELETE
DOWN
END
ENTER
ESC
ESCAPE
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
F13
F14
F15
F16
HELP
HOME
INS
LEFT
NUMLOCK
PGDN
PGUP
PRTSC
RIGHT
SCROLLLOCK
TAB
UP
注:以上这些特殊按键在使用时不分大小写。

技巧:如果你想定义的按键组中有许多连续的字符,可以在{}中的字符后面加一个空格并指定字符的重复次数,如:{left 6}表示按左方向键6下。

下面举一些例子加以说明:
+abc --> Abc (这里的+只影响了第一个a)
+(abc) --> ABC (这里的+影响了括号中的三个字符)
{escape} --> 按下了ESC键
abc123{left}{left}{left}def{end}456{left 6}ghi{end}789 -->
abcdefghi123456789
 

 

http://www.dxqsoft.com

?? 2003-2006 dxqsoft Software. All rights reserved.