常规及逻辑类函数
- 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。
示例:
{ "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中的数组元素。
示例:
{ "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允许空数组,空对象值,,如果元素路径对应的元素为这类空值,则返回结果为空文本。
示例:
{ "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_文本, 元素路径 )
示例:
{ "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 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 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( "TEXT" ) //返回文本
CLIPBOARD_GET( "IMG" ) //返回图像
GET_SHAREDATA
从共享数据块(用于多个正在运行的魔法之间传递数据)中返回数据。共享数据块是一块动态并且只在放置方运行时才有效的内存空间,当最后一个使用共享数据块的魔法结束播放后,共享数据块将被自动删除。
数据 GET_SHAREDATA( 共享数据块名称 )
参数:
共享数据块名称 指定共享数据块名称。一个魔法可以指定一个或是多个共享数据块,它们之间用名称区分。如果指定的共享数据块不存在,则返回为空。
PUT_SHAREDATA
将数据存放到共享数据块中,其它正在运行的魔法可以使用GET_SHAREDATA函数读取。当最后一个使用共享数据块的魔法结束播放后,共享数据块将被自动删除。当一个魔法使用GET_SHAREDATA函数读取指定共享数据块时,算作开始使用。
数据 PUT_SHAREDATA( 共享数据块名称, 数据 [, 共享数据块的空间大小 = 0 ] )
参数:
共享数据块名称 指定共享数据块名称。一个魔法可以指定一个或是多个共享数据块,它们之间用名称区分。如果指定的共享数据块已存在,则直接使用。如果此共享数据块不存在,则会新建。
数据 指定需要共享的数据,如果数据长度超过共享数据块的大小,多余数据将被丢弃。
共享数据块的空间大小 指定共享数据块的空间大小,以字节为单位,此参数仅在需要新建共享数据块的时候使用, 默认值为 0 , 表示数据的长度。