常规及逻辑类函数


  • IF 根据一个逻辑表达式选择一个值
  • CHOOSE 根据一个索引号来选择一个值
  • EVAL 计算一个表达式
  • SIZE 返回一个变量内容的大小(字节单位)
  • RAND 得到一个随机数
  • LICENSEHASH 返回产品激活码的HASH值
  • HARDWAREHASH 得到硬件信息的HASH值
  • IP 得到当前IP地址
  • ISDEMOVERSION 返回产品是否是试用版
  • ISSELFEXE 返回当前魔法是否在EXE模式下播放
  • DEBUGMODE 返回当前魔法是否在调试模式下播放
  • GET_PROGRESSWND 返回当前播放进度窗口的窗口值
  • VER 返回当前产品的版本号
  • ISADMIN 检测是否当前播放器是在系统管理员身份下运行
  • ISMACRORUNNING 检测某个魔法是否正在播放
  • PROCESSID 返回指定进程或者当前播放器的进程ID
  • PROCESSTIME 返回指定进程或者当前播放器开始启动的时间
  • MACRO_COUNT 得到某个魔法正在播放的实例数

  • ISNUMBER 判断表达式是否为数字
  • ISDATE 判断表达式是否为数字
  • ISBOOL 判断表达式是否是一个合法的逻辑值

  • TOSTRING 将内容转换为文本
  • TONUMBER 将内容转换为数字
  • TODATE 将内容转换为日期值
  • TOBOOL 将内容转换为逻辑值
  • TOHEXSTR 将数字转换为16进制文本
  • FROMHEXSTR 将16进制文本转换为文本
  • XLSCOL_TONAME 转换一个数字(索引号)到Microsoft Excel 列名
  • XLSCOL_TOINDEX 转换一个Microsoft Excel 列名到数字(索引号)

  • UBOUND 返回一个数组的最大下标
  • ARRAY_COUNT 返回数组中的元素数量
  • ARRAY_KEY_EXISTS 返回数组中是否存在某个名称的元素
  • ARRAY_KEY 返回数组中某个元素的名称
  • ARRAY_TOJSON 将一个数组转换为JSON文本
  • KEY_ISPRESSED 键盘上指定的键是否按下
  • KEY_ISTOGGLED 键盘上指定的特殊键(大小写或数字小键盘开关)是否处于打开状态

  • GETCARET_X 键盘上指定的键是否按下
  • GETCARET_Y 键盘上指定的特殊键(大小写或数字小键盘开关)是否处于打开状态
  • GETMOUSEPOINTER 得到当前鼠标指针的形状
  • GET_SCREEN_WIDTH 返回屏幕宽度
  • GET_SCREEN_HEIGHT 返回屏幕高度
  • GET_MONITOR_SCALE 返回屏幕显示缩放比例
  • GET_MONITOR_INFO 返加指定屏幕的左上角坐标及宽度高度
  • GET_MONITOR_FROM 返回包括指定点的显示器的左上角坐标及宽度高度

  • CLIPBOARD_GET 返回文本或二进制数据(比如图像数据)
  • SCRIPT_VBS执行VBScript代码
  • SCRIPT_JS执行JScript代码
  • OCR 使用Microsoft MODI 组件识别并返回图像中的文字,此函数仅在增强版中有效
  • OCR2 识别并返回图像中的文字(指定识别库),此函数仅在增强版中有效

  • GET_SHAREDATA 从共享数据块(用于多个同时运行的魔法之间传递数据)中返回数据。
  • PUT_SHAREDATA 放置共享数据,所有其它正在运行的魔法均可以读取这个数据。
  • SYNCH_LOCK等待并取得指定同步对象的所有权
  • SYNCH_UNLOCK释放指定同步对象的所有权

  • JSON_GET_MEMBER 解析JSON数据,并且返回其中的某个元素名称或者值
  • JSON_GET_TYPE 解析JSON数据并且返回其中某个元素的类型
  • JSON_GET 解析JSON数据并且使用元素路径提取其中的某个值
  • JSON_SET 设置JSON元素的值
  • JSON_GET_ITEMCOUNT 返回指定JSON元素下的成员个数或者数组大小
  • XML_GET 解析一段XML数据并返回指定元素的文本或者属性值
  • XML_GET_ITEMCOUNT 解析一段XML数据并且返回符合指定路径的元素个数
  • BROWSER_TYPE返回打开某个网页文档的浏览器类型

IF

根据一个逻辑表达式选择一个值

参数值 IF( 条件表达式 [, 条件为真时的值 = "",条件为假时的值 = "" ] )

返回值类型和相应的参数类似一致。例:IF( 20 > 3, "OK", 300 ), 表达式 20 > 3为真,返回为真时的参数,也就是文本 "OK"。 如果没有带第二个或是第三个参数,将会返回逻辑值TRUE或FALSE。 如下例:

  • IF( 4-3 > 10, "合格" ) //条件表达式结果为FALSE, 由于没有提供第三个参数,将直接返回逻辑值 FALSE。

EVAL

计算一个表达式的值。此函数接收一个字符串表示的表达式,并且对表达式进行求值。返回值的类型取决表于表达式最最的值。

数据 EVAL( 表达式 )

示例:

EVAL( "20+30*2" ) //返回数字 80

EVAL( "#2014-12-1# + 1" ) //返回日期 2014-12-2

EVAL( "strlen(v_name)+2" ) //返回变量v_name的字符串长度并且加2

 

SIZE

返回一个变量内容的大小(字节单位)

数据 SIZE( 变量名称 )

CHOOSE

根据一个索引号来选择一个值

参数值 CHOOSE( 位置表达式, 参数1 [, 参数2, ...] )

返回值类型和相应的参数类似一致。参数的个数不固定,如果少于位置数,则会报错。

  • choose( 4-3, "合格", "不合格", "待检") //位置表达式计算结果为1, 返回结果为第一个参数:"合格"。
  • choose( 3, "合格", "不合格" ) //位置表达式为3, 但没有第三个参数, 会报错。

RAND

根据一个索引号来选择一个值

数字 RAND( [ 最小数字 = 0, 最大数字 = 2147483647 ] )

提示:可选参数最小数字1的缺省值为0, 最大数字为2147483647。

LICENSEHASH

返回产品激活码的HASH值

文本 LICENSEHASH()

如果是试用版 ,则返回值为空文本。

ISDEMOVERSION

返回产品是否运行在试用版下。

逻辑值 ISDEMOVERSION()

如果是试用版 ,则返回值TRUE。

ISSELFEXE

返回当前运行的魔法是否是被转换为EXE。

逻辑值 ISSELFEXE()

DEBUGMODE

返回当前魔法是否运行在调试模式下。

逻辑值 DEBUGMODE()

如果在编辑器中以调试模式播放,则此函数返回值TRUE。

HARDWAREHASH

得到硬件信息的HASH值。可以使用此函数来判断当前脚本是否在某台特定的计算机上运行。

文本 HARDWAREHASH([硬件类型])

参数:硬件类型:1 -- 主板信息, 2 -- 第一块硬盘信息, 3 - 第一块网卡MAC地址。

IP

得到当前计算机的IP地址,如果有多个网卡,可以使用参数来指定取第几块网卡的IP地址。

文本 IP([网卡序号])

GET_PROGRESSWND

返回魔法播放进度窗口的窗口值。

窗口值 GET_PROGRESSWND()

当需要对魔法窗口值进行一些特殊处理的时候,可以使用此函数。比如:第三方程序可以通过检查进度窗口值判断魔法是否正在播放。

VER

返回产品的版本号

文本 VER()

如果是试用版 ,则返回值为空文本。

ISADMIN

返回当前是否在系统管理员权限下播放。

逻辑值 ISADMIN()

ISMACRORUNNING

检测某个魔法是否正在播放。

逻辑值 ISMACRORUNNING( 魔法名称或是文件名 [, 是否为魔法文件名 = FALSE ] )

MACRO_COUNT

当一个魔法有多个播放实例时(相同的脚本同时运行好几次),得到正在播放的个数。

逻辑值 MACRO_COUNT( [魔法名称或是文件名 = '', 是否为魔法文件名 = FALSE ] )

PROCESSID

返回当前魔法的播放器或者是指定进程的进程ID。

数字值 PROCESSID( [进程文件名 = '', 是否是全路径名 = FALSE] )

如果参数进程文件名为空,则返回当前魔法的播放器进程ID。

PROCESSTIME

返回当前魔法的播放器或者是指定进程开始启动的时间。

日期时间值 PROCESSTIME( [进程文件名 = '', 是否是全路径名 = FALSE] )

如果参数进程文件名为空,则返回当前魔法的播放器进程启动时间。

ISNUMBER

判断表达式是否为数字

逻辑值 ISNUMBER( 表达式 )

示例:

  • ISNUMBER("65") //返回结果 TRUE
  • ISNUMBER("abc") //返回结果 FALSE

ISDATE

判断表达式是否是一个合法的日期值

逻辑值 ISDATE( 表达式 )

ISBOOL

判断表达式是否是一个合法的逻辑值

逻辑值 ISBOOL( 表达式 )

示例:

  • ISBOOL("TRUE") //返回结果 TRUE
  • ISBOOL( 65 ) //返回结果 FALSE

TOSTRING

将内容转换为文本

文本 TOSTRING( 表达式 [, 小数位数 = 16 ] )

说明:小数位数只在表达式是数字时才起作用,最大16位。如:3.1415926,只需要保留2位小数, 3.14,则可以使用TOSTRING( 3.1415926, 2)。

TONUMBER

将内容转换为数字

数字 TONUMBER( 表达式 )

TODATE

将内容转换为日期值

日期时间值 TODATE( 表达式 )

TOBOOL

将内容转换为逻辑值

逻辑值 TOBOOL( 表达式 )

TOHEXSTR

将数字转换为16进制文本

逻辑值 TOHEXSTR( 数字 [, 是否大写 = FALSE ] )

FROMHEXSTR

将一串以16进制数字表示的文本转换为实际的文本

文本 FROMHEXSTR( 16进制数字文本 )

示例:

  • FROMHEXSTR("414243") //返回结果 ABC

XLSCOL_TONAME

转换一个数字(索引号)到Microsoft Excel 列名。

文本 XLSCOL_TONAME( 列号 )

示例:

XLSCOL_TONAME( 0 ) //返回文本 "A"

XLSCOL_TONAME( 26 ) //返回文本 "AA"

XLSCOL_TOINDEX

转换一个Microsoft Excel 列名到数字(索引号)。

数字 XLSCOL_TOINDEX( 列名 )

示例:

XLSCOL_TOINDEX( "A" ) //返回数字 0

XLSCOL_TOINDEX( "AA" ) //返回数字 26

UBOUND

返回数组某一维的最大下标值。

数字 UBOUND( 数组名称 [, 第几维 = 0 ] )

示例:

数组:v_A[10, 5], 此函数返回下列值:

UBOUND( v_A ) //返回数字9

UBOUND( v_A, 2 ) //返回数字4

你可以使用此函数得到数组的元素个数, 由于数组下标是从0开始的,用于取得个数时,你需要对此函数返回的结果加1.如:

( UBOUND( v_A, 1 ) + 1 ) * ( UBOUND( v_A, 2 ) + 1 ) //返回数字50

ARRAY_COUNT

返回数组中的元素数量。

数字 ARRAY_COUNT( 数组名称 [, 是否仅返回第一层数量=FALSE] )

示例:

假设有二维数组:v_A[10, 3],有10个元素:

ARRAY_COUNT( v_A ) //返回总的元素个数,30

ARRAY_COUNT( v_A,TRUE ) //返回第一维的数量,10

ARRAY_COUNT( v_A[3],TRUE ) //取这个二维数组的某一行的数量,返回数字3

ARRAY_KEY_EXISTS

返回数组中是否有某个元素存在。

逻辑值 ARRAY_KEY_EXISTS( 数组名称, 元素名称或是索引 [, 是否在数组的所有元素中进行查找=TRUE] )

示例:

假设有一个普通数组,没有命名元素存在:v_A[10]

ARRAY_KEY_EXISTS( v_A, 1 ) //返回TRUE

ARRAY_KEY_EXISTS( v_A,'abc' ) //返回FALSE

ARRAY_KEY

返回数组中某个元素的名称。

逻辑值 ARRAY_KEY( 数组名称, 索引 )

ARRAY_TOJSON

将一个数组转换为JSON文本。

文本 ARRAY_TOJSON( 数组名称 [, 对中文进行转码=TRUE] )

示例:

假设有一个普通数组,没有命名元素存在:v_A[3],且元素值全部为10。

ARRAY_TOJSON( v_A, 1 ) //返回文本 [10,10,10]

假设有一个含三个元素数组v_B,元素名及内容分别是:a=10, b=20, c="www.won-soft.com"。

ARRAY_TOJSON( v_B ) //返回文本: {"a":10, "b":20, "c":"www.won-soft.com"}

KEY_ISPRESSED

键盘上指定的键是否按下。函数参数按键值可以用按键的虚拟代码值,或者用按键名,具体列表请参见按键名称及键值表

逻辑值 KEY_ISPRESSED( 按键值 )

示例:

KEY_ISPRESSED( 0x27 ) //如果ESC键是按下的,则返回TRUE,否则返回FALSE

KEY_ISTOGGLED

键盘上指定的特殊键(大小写或数字小键盘开关)是否处于打开状态。函数参数按键值可以用按键的虚拟代码值,或者用按键名,具体列表请参见按键名称及键值表

逻辑值 KEY_ISTOGGLED( 按键值 )

示例:

KEY_ISPRESSED( 0x14 ) //如果大小写开关是打开的,则返回TRUE,否则返回FALSE

GETCARET_X

返回文本插入符的X坐标。

数字 GETCARET_X( [ 是否窗口坐标 = FALSE ] )

可选 [是否窗口坐标]默认为FALSE, 为TRUE是指示返回窗口坐标。如果当前没有文本插入符,则返回-1。

GETCARET_Y

返回文本插入符的Y坐标。

数字 GETCARET_Y( [ 是否窗口坐标 = FALSE ] )

可选 [是否窗口坐标]默认为FALSE, 为TRUE是指示返回窗口坐标。如果当前没有文本插入符,则返回-1。

GET_SCREEN_WIDTH

返回屏幕宽度。

数字 GET_SCREEN_WIDTH( [ 是否整个桌面 = FALSE ] )

可选参数是否整个桌面 缺省值为FALSE。FALSE 表示取主显示器的宽度,TRUE表示取整个桌面的宽度。

GET_SCREEN_HEIGHT

返回屏幕高度。

数字 GET_SCREEN_HEIGHT( [ 是否整个桌面 = FALSE ] )

可选参数是否整个桌面 缺省值为FALSE。FALSE 表示取主显示器的高度,TRUE表示取整个桌面的高度。

GET_MONITOR_SCALE

返回屏幕显示缩放比例。返回值是一个百分数,没有缩放时为100,缩放125%时将返回125。

数字 GET_MONITOR_SCALE( [ 屏幕索引 = 0 ] )

可选参数屏幕索引 缺省值为0。当有多个显示器的时候此参数才有意义,0 表示取主显示器的显示比例,1 是第二个显示器的显示比例,依次类推。

GET_MONITOR_INFO

返回显示器分辨率信息。

数组 GET_MONITOR_INFO( [ 显示器索引 = 0, 是否取工作区域的坐标 = false, 是否返回点坐标 = true ] )

可选参数显示器索引 缺省值为0。当有多个显示器的时候此参数才有意义,0 表示取主显示器的显示比例,1 是第二个显示器的显示比例,依次类推。

返回结果是一个数组,数组元素的名称及含义如下:

  • left 屏幕的左坐标
  • top 屏莫上坐标
  • right 屏幕右坐标
  • bottom 屏幕下坐标
  • scale 屏幕的缩放比例

GET_MONITOR_FROM

返回包括指定点的显示器的分辨率信息。

数组 GET_MONITOR_FROM([x = 当前鼠标位置X, y = 当前鼠标位置y, 是否取工作区域的坐标 = false, 是否返回点坐标 = true ] )

返回结果是一个数组,数组元素的名称及含义如下:

  • left 屏幕的左坐标
  • top 屏莫上坐标
  • right 屏幕右坐标
  • bottom 屏幕下坐标
  • scale 屏幕的缩放比例

JSON_GET_TYPE

解析JSON数据并且返回其中某个元素的数据类型,本函数返回值是一个文本,可能是:ARR,OBJ,NUM, STR, BOOL,分别对应数据类型:数组,对象,数字,文本,逻辑,本函数可以结合JSON_GET_MEMBER完成JSON数据的遍历。

文本 JSON_GET_TYPE( json_文本, 元素路径 )

元素路径类似于XML的XPATH,是一种简单方便的JSON元素指定方法, 是一个以/斜线分隔对象层次关系路径文本,如:/book/author,对于数组元素,则直接使用索引号(以0开始),如: /book/2/author。

示例:

假设某段JSON数据为如下内容,保存在变量 v_data中
{
	"foo" : ["bar", "baz"],
	"pi" : 3.1416,
	"people" : 
	[
    	{
			"name" : "Jack",
			"age" : 20
		},
    	{
			"name" : "Mily",
			"age" : 22
		},
     ]
}

以下的元素路径解析为:

%=JSON_GET_TYPE( v_data, "/foo")% //由于目标元素是一个数组,返回结果为:ARR

%=JSON_GET_TYPE( v_data, "/pi")% //由于目标元素是一个数字,返回结果为:NUM

JSON_GET_MEMBER

解析JSON数据并且返回其中某个元素的名称或者值,此函数允许以元素顺序号的方式读取JSON数据中的某个元素,结合JSON_GET_TYPE可以对一段未知JSON数据进行元素遍历。

值 JSON_GET_MEMBER( json_文本,元素顺序号 [, 是否取元素值 = FALSE,上级元素路径 = "" ])

可选参数:是否取元素值默认值为FALSE,也就是取元素名称。

元素路径类似于XML的XPATH,是一种简单方便的JSON元素指定方法, 是一个以/斜线分隔对象层次关系路径文本,如:/book/author,对于数组元素,则直接使用索引号(以0开始),如: /book/2/author。

注意:此函数不能用于取JSON中的数组元素。

示例:

假设某段JSON数据为如下内容,保存在变量 v_data中
{
	"foo" : ["bar", "baz"],
	"pi" : 3.1416,
	"name" : "Jack"
}

%=JSON_GET_MEMBER( v_data, 0 )% //取第一个元素,默认取名称,返回结果为:foo

%=JSON_GET_MEMBER( v_data, 1, TRUE )% //取第二个元素,取值,返回结果为:3.1416

%=JSON_GET_MEMBER( v_data, 1, TRUE,"/foo" )% //返回foo下面第二元素的值, 结果为:baz

JSON_GET

解析JSON数据并且使用元素路径提取其中的某个值。

值 JSON_GET( json_文本, 元素路径 [, 对数组/对象是否取第一个元素 = FALSE ] )

可选参数对数组/对象是否取第一个元素 可选, 缺省值为FALSE。FALSE 表示不取第一个元素,如果指定的元素是一个数组或者对象,则会返回数组或者对象的文本,如果为TRUE, 则会返回第一个元素,如果第一个元素仍然数组或对象,会继续解析一直到取出一个普通值。

元素路径类似于XML的XPATH,是一种简单方便的JSON元素指定方法, 是一个以/斜线分隔对象层次关系路径文本,如:/book/author,对于数组元素,则直接使用索引号(以0开始),如: /book/2/author。

返回值的类型由对应的成员数据类型决定,有可能是数字,文本,逻辑三种。由于JSON允许空数组,空对象值,,如果元素路径对应的元素为这类空值,则返回结果为空文本。

示例:

假设某段JSON数据为如下内容,保存在变量 v_data中
{
	"foo" : ["bar", "baz"],
	"pi" : 3.1416,
	"people" : 
	[
    	{
			"name" : "Jack",
			"age" : 20
		},
    	{
			"name" : "Mily",
			"age" : 22
		},
    	{
			"name" : "Ben",
			"age" : 28
		}
     ]
}

以下的元素路径解析为:

%=JSON_GET( v_data, "/foo")% //结果为 [ "bar", "baz" ],foo是一个数组,取所有内容

%=JSON_GET( v_data, "/foo", TRUE)% //第三个参数为TRUE,取/foo下第一个元素,结果为 "bar"。

%=JSON_GET( v_data, "/foo/0" )% //结果为 "bar"

%=JSON_GET( v_data, "/foo/1" )% //结果为 "baz",foo数组下第二个元素

%=JSON_GET( v_data, "/pi" )% //结果为 3.1416

%=JSON_GET( v_data, "/people/1/name" )% //结果为 "Mily", 也就是people数组下第二个元素的name成员值。

JSON_SET

设置JSON元素的值, 如果JSON中没有此元素, 将自动建立。

文本 JSON_GET( json_文本, 元素路径, 值 )

元素路径类似于XML的XPATH,是一种简单方便的JSON元素指定方法, 是一个以/斜线分隔对象层次关系路径文本,如:/book/author,对于数组元素,则直接使用索引号(以0开始),如: /book/2/author。

示例:

以下的元素路径解析为:

%=JSON_SET( v_data, "/foo/bar", "ABC")% //结果为 {"foo":{"bar":"ABC"}}

JSON_GET_ITEMCOUNT

根据路径定位JSON元素,如果此元素是一个数组,则返回数组长度,如果此元素是一个对象,对返回对象内的成员个数。如果元素没找到,则返回数字 0,如果是普通元素,返回数字 1。

数字 JSON_GET_ITEMCOUNT( json_文本, 元素路径 )

示例:

假设某段JSON数据为如下内容,保存在变量 v_data中
{
	"foo" : ["bar", "baz"],
	"pi" : 3.1416,
	"people" : 
	[
    	{
			"name" : "Jack",
			"age" : 20
		},
    	{
			"name" : "Mily",
			"age" : 22
		}
     ]
}

以下的函数及结果为:

%=JSON_GET_ITEMCOUNT( v_data, "/foo")% //foo是数组,返回其长度,结果为 2

%=JSON_GET_ITEMCOUNT( v_data, "/people/0")% //people/0是一个对象,返回其成员个数,为数字2。

%=JSON_GET_ITEMCOUNT( v_data, "/pi" )% //普通元素,返回数字 1

%=JSON_GET_ITEMCOUNT( v_data, "/zoo" )% //无此元素,返回结果 0

XML_GET

解析一段XML数据并返回指定元素的文本或者属性值。需要注意的XML是区分大小写的。

文本 XML_GET( XML文本,XPath [, 属性 = "" ] )

可选参数属性 如果没有指定,则表示读取XML元素的文本,否则将尝试读取XML元素的属性值。

XPath 是一个类似于文件路径的文本,可用于在XML文档中对元素进行查找定位。XPath是区分大小写的,且数组下标是从1开始。更多关于XPATH的知识,可以参见相关文档

示例:

假设某段XML数据为如下内容,保存在变量 v_xml中
<?xml version="1.0" encoding="utf8"?>
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
</book>
</bookstore> 以下的元素路径解析为:

%=XML_GET( v_xml, "//bookstore/book[1]/author")% //读book第一个元素,结果为 Giada De Laurentiis,XPath中数组下标是从1开始。

%=XML_GET( v_xml, "//bookstore/book[2]", "category")% //读取属性category, 结果为 CHILDREN

XML_GET_ITEMCOUNT

解析一段XML数据并且返回符合指定路径的元素个数。需要注意的XML是区分大小写的。

数字 XML_GET_ITEMCOUNT( XML文本,XPath )

XPath 是一个类似于文件路径的文本,可用于在XML文档中对元素进行查找定位。XPath是区分大小写的,且数组下标是从1开始。更多关于XPATH的知识,可以参见相关文档

示例:

假设某段XML数据为如下内容,保存在变量 v_xml中
<?xml version="1.0" encoding="utf8"?>
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
</book>
</bookstore> 以下的元素路径解析为:

%=XML_GET_ITEMCOUNT( v_xml, "//bookstore/book")% //返回数字 3

%=XML_GET( v_xml, "//bookstore/book[2]/author")% //返回数字 1

BROWSER_TYPE

返回打开网页的浏览器类型。

文字 BROWSER_TYPE( 网页文档名称 )

如果是Chrome或者基于Chromium的浏览器,将返回文本Chrome,IE内核浏览器打开的将返回文本IE。

SYNCH_LOCK

等待并取得指定同步对象的所有权。通过同步对象,可以协调多个脚本同时播放时对某个资源(比如文件,屏幕上某个窗口等等)的访问,防止出现同时操作而乱套。当一个脚本取得某个对象的同步权后,在释放所有权以前,其它脚本要取得所有权,会自动等待。

逻辑值 SYNCH_LOCK( 对象名称 )

对象名称是随意取的,但不能以数字开头。

SYNCH_UNLOCK

释放指定同步对象的所有权。

文字 SYNCH_UNLOCK( 对象名称 )

对象名称是随意取的,但不能以数字开头。

SCRIPT_VBS

执行一段VBScript代码。

返回值 SCRIPT_VBS( 代码文件名|代码[, 函数/过程名称,参数1, ... 参数n] )

对于较长的代码,建议使用文件保存代码,比如:SCRIPT_VBS( "f:\\1.vbs", "exam_func", 1, 2, 3, 4)。较短的代码,则可以直接写到函数里面,比如: SCRIPT_VBS("function v(a,b,c)\nv=a+b+c\nend function", "v", 1,2,3)

SCRIPT_JS

执行JScript代码。

返回值 SCRIPT_JS( 代码文件名|代码[, 函数/过程名称,参数1, ... 参数n] )

对于较长的代码,建议使用文件保存代码,比如:SCRIPT_JS( "f:\\1.js", "exam_func", 1, 2, 3, 4)。较短的代码,则可以直接写到函数里面,比如: SCRIPT_JS("function v(a,b,c){return a+b+c;}", "v", 1,2,3)

GETMOUSEPOINTER

返回当前的鼠标指针。

文本 GETMOUSEPOINTER()

返回值 含义
ARROW 普通箭头
IBEAM 文本插入
WAIT 等待
CROSS 十字光标
UPARROW 向上指的箭头
SIZEALL 四向箭头指向东、西、南、北
SIZENWSE 双箭头指向西北和东南
SIZENESW 双箭头指向东北和西南
SIZEWE 双箭头指向东西
SIZENS 双箭头指向南北
HAND 手形光标
HELP 帮助
NO 禁止圈
APPSTARTING 标准的箭头和小沙漏

OCR

此函数仅在增强版中有效。识别并返回图像文件中的文字(使用Office文字识别组件)。此函数仅在自动操作魔法师中有效。

文本 OCR( 图像文件 [, 语言编码ID = 0 ] )

语言编码ID 默认为0, 表示为当前Windows系统的语言。

此函数需要安装Microsoft MODI组件,否则不可用。语言编码为数字,缺省为当前操作系统的设置。

注:识别结果完全取决于MOD组件识别能力,当文字过少(少于4个字)的时候,有可能无法识别。

OCR2

此函数仅在增强版中有效。识别并返回图像文件中的文字,和函数OCR不同,此函数不需要Microsoft MODI组件。中文识别库的下载地址为:https://github.com/tesseract-ocr/tessdata/blob/master/chi_sim.traineddata。如果需要更多的识库,访问地址:识别库文件可以到 https://github.com/tesseract-ocr/tessdata 下载,此函数仅在自动操作魔法师中有效。

文本 OCR2( 图片文件 [, 识别库文件 = "", 识别库文件所在路径 = "" , 过滤用字符集 = "" ])

识别库文件 默认为播放器文件目录下的eng.traineddata, 如果指定了路径,则参数识别库文件所在路径 需要用空字符串。如果没有指定路径,且参数识别库文件所在路径 为空文本,则以脚本所在的文件夹为起点查找,如果查找不到,则会到软件的安装文件夹进行查找。

例:

OCR2( "d:\\1.bmp", "eng.traineddata" ) //使用识别库eng.traineddata对图像d:\1.bmp中的文字进行识别,识别库没有指定路径,将在缺省的路径中去搜索此文件。

OCR2( "d:\\1.bmp", "f:\\eng.traineddata", "", "0123456789." ) //使用全路径的识别库文件f:\english对图像d:\1.bmp中的文字进行识别,并且通过过滤参数只保留数字和小数点。

CLIPBOARD_GET

返回文本或二进制数据(比如图像数据)。

数据 CLIPBOARD_GET( [ 数据类型 = "TEXT" ] )

参数:

数据类型 指定想得到的数据类型, 可以是"TEXT", "IMG", 或者自动 "AUTO"。如果忽略此参数,缺省是 "AUTO"。 如果指定类型的数据不存在,则返回空文本。

例:

CLIPBOARD_GET()

CLIPBOARD_GET( "TEXT" ) //返回文本

CLIPBOARD_GET( "IMG" ) //返回图像

GET_SHAREDATA

从共享数据块(用于多个正在运行的魔法之间传递数据)中返回数据。共享数据块是一块动态并且只在放置方运行时才有效的内存空间,当最后一个使用共享数据块的魔法结束播放后,共享数据块将被自动删除。

数据 GET_SHAREDATA( 共享数据块名称 )

参数:

共享数据块名称 指定共享数据块名称。一个魔法可以指定一个或是多个共享数据块,它们之间用名称区分。如果指定的共享数据块不存在,则返回为空。

PUT_SHAREDATA

将数据存放到共享数据块中,其它正在运行的魔法可以使用GET_SHAREDATA函数读取。当最后一个使用共享数据块的魔法结束播放后,共享数据块将被自动删除。当一个魔法使用GET_SHAREDATA函数读取指定共享数据块时,算作开始使用。

数据 PUT_SHAREDATA( 共享数据块名称, 数据 [, 共享数据块的空间大小 = 0 ] )

参数:

共享数据块名称 指定共享数据块名称。一个魔法可以指定一个或是多个共享数据块,它们之间用名称区分。如果指定的共享数据块已存在,则直接使用。如果此共享数据块不存在,则会新建。

数据 指定需要共享的数据,如果数据长度超过共享数据块的大小,多余数据将被丢弃。

共享数据块的空间大小 指定共享数据块的空间大小,以字节为单位,此参数仅在需要新建共享数据块的时候使用, 默认值为 0 , 表示数据的长度。

>