MortScript中文教程(4.3b11BETA版)
转载自:http://www.kegel.com/wine/testsw.html
一、MortScript概述:
Mort:批量;Script:脚本;MortScript:批处理脚本;(故为顺序逐条执行)
它是一种解释程序,就象Visual Basic的即时解释环境一样。所以,它不生成EXE等可执行程序,而是由MortScript.exe来运行*.mscr或
*.mortrun的脚本文件。当然,如果进行了安装,或设置了文件关联,则可直接点击脚本文件运行。
官方主页:
二、mscr脚本概述:
*.mortrun格式为MortScript的前身MortRunner的兼容脚本。*.mscr格式可用任意文本编辑器来编写脚本,如windows自带的记事本,保存
格式推荐ANSI,当然,它还兼容UNICODE格式。文件名及内容均不区分大小写。
脚本里的空格、制表符、换行连接符:空格和制表占位符可放在命令、函数名、括号、参数、运算符、选项的前、后等位置,但均被忽略
,字符串中需要使用空格则应放在引号内。换行连接符采用\符,放置于所在行的行末。
未指定路径则默认当前脚本所在路径。注释行则是以#开头的行。在INI文件中,则使用;进行注释。
结束以:Exit,退出和结束脚本。
三、MortScript功能:
1、运行、激活,隐藏,关闭应用程序。
2、根据指定条件,执行或延时执行程序、脚本。
3、模拟键盘、鼠标、触笔操作。
4、复制、重命名、移动、删除文件或文件夹,创建文件夹,以及创建快捷方式。
5、支持ZIP格式压缩包。
6、读、写文本文件。
7、读、改注册表。
8、下载、创建、关闭链接。
9、做判断、循环操作。
10、部分系统的旋屏、音量、背光、重启操作。
四、MortScript安装包结构解读:
pc:分别适用WM、CE、SP、win2000、XP、vista系统设备绿色使用。
setup:分别适用WM、CE、SP系统设备,通过PC连接设备同步安装。
cab:分别适用WM、CE、SP系统设备直接安装。
killproc.exe:CE系统结束进程用。不用此功能时,可以不要该文件。
mortzip.dll:除PC系统外适用,用于ZIP压缩包的解压支持文件。
setup.dll:除PC系统外适用,用于CAB包安装、卸载信息记录。
此二个DLL文件,如不使用上述二个功能时,可以不要。
另:适用CE系统的版本,基本兼容适用WM系统。
Autorun.exe:运行该程序,执行同名.mscr脚本,该程序可改名。不改名可放在2577或0文件夹,而得以在拨、插储存卡时支持自动运行(插
卡时执行autorun.mscr,拨卡时执行autoexit.mscr,老程序则为:autorun.mortrun和autoexit.mortrun),当然,并不是所有设备都支持该
功能。且该程序需要MortScript.exe主程序支持。
五、一个PPC独有的可选参数:
/wait=n
n为一个以秒为单位的数字,除此外的所有类似于此的表达式均为变量的定义表达,当然,所有其他参数也不会以/或-开始。该功能用于如关
联了PPC按键,但在PPC唤醒时段不能执行脚本时候的延时辅助。不过,MortScript已默认5秒延时。
六、帮助手册PDF里的命令语法样式说明:
粗体字:命令、函数名、关键字。
斜体字:变量,常用表达式。
[]:中括号为可选项(即可省略项)。
{}:花括号为可多选项或省略项。
():分组,经常用|符来列出可选项。注:函数不能省略括号,命令可以省略。如:message("你好!")和message"你好!"
X|Y|Z:必选其中一个选项,常为定值选择。
七、常用语法:
关键字:
"XXX"
注:引号在字符串里的引用,需要双层使用。
^CR^:回车;^LF^:换行;^NL^:换行;^TAB^:制表符。(^CR^^LF^=^NL^)
字符串表达式:
value=Eval(string)
常数:
3.1415926
变量:
X=表达式
Set(variable,expression)
变量名由:字母、数字(不能以数字打头)、下划线组成,且不区分大小写。
X+=1相当于x=x+1;类似的双目运算符还有:-=、*=、/=、&=、\=。
预定义变量:
TRUE,ON,YES:初始值为1;
FALSE,OFF,NO:初始值为0;
CANCEL:初始值为2;
PI:3.14159266535897932384626433832759
SQRT2:1.4......
PHI:1.6......
EULER:2.7......
全局变量:Global(variable{,variable})
局部变量:Local([variable{,variable}])
数组array[]:实质一种特殊类型的变量。数组名和元素名也是不区别大小写的。
清除变量:
Clear(variable)
检验变量:
bool=IsEmpty(variable)
返回变量类型:
int=VarType(variable)
返回值列表:var_empty;var_int;var_float;var_string;var_array;var_window。
函数:
函数名(参数)
运算符:(按由高到低优先级列表)
()
NOT
^
*,/,MOD
+,-
&,\
>,>=,<,<=,=,<>
gt,ge,lt,le,eq,ne
condition?true:false
AND,&&
OR,||
八、流程控制语句:
1、条件判断控制:
If (wndExists("Word"))
EndIf
While (X<>5)
EndWhile
If (表达式)
{语句}
{ElseIf (表达式)
{语句}}
[Else
{语句}]
EndIf
2、多重分支控制:
Switch (表达式)
Case(参数 {,参数})
{指令}
{Case(参数{,参数})
{指令}}
{Default
{指令}}
EndSwitch
选择对话框:
(
Choice(title,hint,value,value{,value})
Choice(title,hint,array)
ChoiceDefault(title,hint,default,timeout,value,value{,value})
)
Case(value{,value})
{instructions}
{Case(value{,value})
{instructions}}
{Default
{instructions}}
EndChoice
示例:
choice("Test","select a number","one","two","three")
case(1)
message("one")
case(2,3)
message("two or three")
case(3)
message("three")
case(0)
message("cancel")
exit
endchoice
3、条件循环控制:
while(条件)
{表达式}
endwhile
4、迭代循环:
ForEach variable{,variable}in type(parameter{,parameter})
{instructions}
endforeach
ForEach variable in values (value {,value})
ForEach variable in array (array variable)
ForEach key, value in array (array variable)
ForEach variable in split (string,separator,trim?)
ForEach variable in Charsof (string)
ForEach variable in iniSections (file name [,codepage])
ForEach key,value in iniKeys (file name,section[,codepage])
ForEach variable in regSubkeys (root,key)
ForEach value,date in regValues (root,key)
ForEach variable in files (search expression)
ForEach variable in directories (search expression)
5、常数循环:
Repeat (count)
{instructions}
EndRepeat
6、FOR循环:
For variable=start to end [step step]
{instructions}
Next
7、中断和继续:
中断:Break [(structure type)]
继续:Continue [(structure type)]
8、错误处理:
Try
instructions
{Catch
instructions}
EndTry
错误提示等级:ErrorLevel(error level)
off:关闭出错提示;critical:特殊提示;syntax:语法错误提示(参数错误;无效命令;函数名);error:其他错误;warn:文件或文件夹
的移动,复制,重命名出错。
9、子程序及函数的调用:
Sub subroutine [(parameter{,parameter})]
{instructions}
EndSub
内部:
Call (subroutine{,parameter})
CallFunction (subroutine,variable{,parameter})
外部:
CallScript (MortScript file{,parameter})
CallScriptFunction (MortScript file,variable{,parameter})
10、包含子程序的其他文件命令:
Include(file)
11、参数返回:
Return(value)
12、子程序的退出:
ExitSub[(value)]
九、字符串操作:
int=Length(string)
返回字符串字数。(含字符串里的空格)
string=SubStr(string,从左往右第几位[,截取几个])
字符串截取。截取长度省略或超长,则截取至完。截取长度短于字串数,则返回空字符串。位数为负时,则反向截取。
string=CharAt(string,位置)
返回字符串指定位置的字符。
string=Part(string,separator,index[,trim?])
返回字符串指定分隔符部分,并修整移除空格旁的部分。index可为负。
string=Find(string to check,string to search [,start])
字符串包含查找。返回第二个字符串,包含于第一个字符串的位置。start为位置参数。查找区分大小写。
int=ReverseFind(string,character)
返回字符所在字符串位置的倒数位置。
string=Replace(source,old,new)
返回被新替换旧字串后的目标字符串。
string=ToUpper(string)
string=ToLower(string)
大小写转换。
string=UcChar(value)
int=UcValue(string)
字符和Unicode值转换。
string=FilePath(file with path)
string=FileBase(file with path)
string=FileExt(file with path)
文件路径、文件名、文件扩展名的截取。
十、数学函数:
string=Format(value,decimals)
返回值保留小数点后几位,由decimals指定倍数。
string=NumberToHex(int value)
int=HexToNumber(string)
字符的十六进制转换。
int/float=Round(value[,precision])
int/float=Floor(value[,precision])
int/float=Ceil(value[,precision])
四舍五入;四舍五入并取整;取整;
int=Rand(max)
float=Rand()
取随机值。整形取值范围为零至给出的最大值减1。浮点型为零至0.999...
float=Sin(radians)
三角函数。函数有:cos,tan,sinh,cosh,tanh,arcsin,arccos,arctan。
float=Log(value)
对数与指数。函数有:Log10,Exp。
float=Sqrt(value)
平方根。
int=CompareFloat(value1,value2,precision)
浮点数比较。
value=Min(value,value{,value})
value=Max(value,value{,value})
获取最大或最小值。
十一、数组:(略)
十二、执行应用程序与打开文档:
Run(application[,parameter])
可执行文件,快捷方式*.lnk,文档均可,必要时需指定应用程序的完整路径。
例:Run("\windows\Pword.exe","\My documents\doc.psw")
RunWait(application[,parameter])
同上,区别在于:1.本命令直到执行程序执行结束后,才继续下一条命令。2.不能使用快捷方式*.lnk文件。
RunAt(Unix timestamp,application[,parameter])
RunAt(year,month,day,hour,minute,applikation[,parameter])
于指定时间运行程序。PC上无效,部分WM5系统的PPC无效。
RunOnPowerOn(application[,parameter])
RemoveNotifications(application,[parameter])
十三、应用程序窗口:
Show(window):
据标题显示并激活一个窗口。
注意标题不要使用特殊点及大写。
Minimize(window)
据标题隐藏并最小化一个窗口。
Close(window)
据标题关闭并结束一个窗口。部分特殊程序不支持。
window=ActiveWindow()
获取一个活动窗口的标题。
bool=WndActive(window)
检查一个窗口是否被激活。返回的是一个布尔值。
bool=WndExists(window)
检查一个窗口是否存在。
WaitFor(window,seconds)
据时等到窗口存在。
WaiForActive(window,seconds)
据时等到窗口激活。
string=WindowText(x,y)
获取窗口标题/内容元素。
GetWindowPos(window,left,top,right,bottom)
int=WndLeft(window)
int=WndRight(window)
int=WndTop(window)
int=WndBottom(window)
获取窗口坐标,左,右,上,下位置。
十四、键操作:键盘、鼠标(触笔)
SendCommand([window,]command id)
SendOK[(window)]
SendCancel[(window)]
SendYes[(window)]
SendNo[(window)]
发送特殊命令。省略窗口标题指定,则对当前激活窗口进行操作。
SendCommand([window,]command id)
PostMessage([window,]message id,wparam,lparam)
SendMessage([window,]message id,wparam,lparam)
int=SendMessage([window,]messageid,wparam,lparam)
发送高级命令消息。
SendKeys([window,]string)
模拟打字。
SendSpecial(key name[,state])
模拟按键。键名字符串不区分大小写。省略窗口标题参数,则对当前激活窗口作用。状态参数:省略时相当于短按或松开。设为down和up时,
相当于按下不放。
可模拟键:
alt,ctrl,shift,cr,win,context,tab,esc,space,up,down,left,right,home,end,pageup,pagedown,delete,backspace,insert,snapshot,f1
-f12,leftsoft,rightsoft。
Snapshot [(window)]
抓屏至剪切板。
SendCtrlKey([window,]key)
发送CTRL+指定键至指定窗口。键名不区分大小写。
MouseClick([window,]x,y)
RightMouseClice([window,]x,y)
MiddleMouseClick([window,]x,y)
模拟鼠标单击,坐标位置从左上角开始。
MouseDbClick([window,]x,y)
RightMouseDbClice([window,]x,y)
MiddleMouseDbClick([window,]x,y)
模拟鼠标双击。
MouseDown([window,]x,y)
MouseUp([window,]x,y)
RightMouseDown([window,]x,y)
RightMouseUp([window,]x,y)
MiddleMouseDown([window,]x,y)
MiddleMouseUp([window,]x,y)
模拟鼠标压、放操作。
十五、等待、延时:
Sleep(milliseconds)
暂停指定时间,单位毫秒。
SleepMessage(seconds,message[,title[,OK allowed?[,condition]])
倒计时消息框。
十六、时间:
int=TimeStamp()
int=MakeTimeStamp(year,month,day[,hour[,minute[,second]]])
返回1970-01-01后的系统当前时间。
string=FormatTime(format[,timestamp])
时间的格式输出:
H:Hour(00-23)
h:Hour(01-12)
a:am/pm
A:AM/PM
i:Minute(00-59)
s:Seconds(00-59)
d:Day(01-31)
m:Month(01-12)
Y:Year(4 digits)
y:Year(2 digits)
w:Day of week(0=Sunday to 6=Saturday)
u:Unix timestamp
{MM}:如January
{M}:如Jan
{WW}:如Monday
{W}:如Mon
GetTime(variable,variable,variable,variable,variable,variable)
获取系统当前时间。时分秒日月年。
SetTime(hour,minute,second[,day,month,year])
SetDate(day,month,year)
设置系统时间、日期。
十七、文件、目录的操作:
Copy(source file,target file[,overwrite?])
单文件复制。overwrite取值为true或false,决定当存在目标文件时,是否覆盖。
XCopy(source files,target directory[,overwrite?[,subdirs?]])
多文件、文件夹复制。源文件可使用*和?通配符。
overwrite取值为true或false,决定当存在目标文件时,是否覆盖。subdirs决定是否包括子文件夹。
Rename(source file,target file[,overwrite?])
重命名或移动文件。overwrite取值为true或false,决定当存在目标文件时,是否覆盖。
Move(source files,target directory[,overwrite?[,subdirs?]])
多文件或文件夹的移动。源文件可使用*和?通配符。
overwrite取值为true或false,决定当存在目标文件时,是否覆盖。subdirs决定是否包括子文件夹。
Delete(files)
删除文件。支持通配符和路径。
DelTree(files)
删除文件夹。支持通配符和路径。
CreateShortcut(shortcut file,target file[,overwrite?])
创建快捷方式。overwrite取值为true或false,决定当存在目标文件时,是否覆盖。
例:CreateShortcut("\windows\start menu\test.lnk","\storage\test.exe",true)
MkDir(directory)
创建文件夹。不能一次创建多层文件夹。
RmDir(directory)
删除一个空文件夹。
ChDir(directory)
切换当前文件夹。相当于电脑DOS里的CD命令。仅适用于PC。
x=SystemPath(type)
获取系统路径。type必须为字符串,如: "StartMenu"
type的几个常用参数:
ProgramsMenu:开始菜单里的Programs。
StartMenu:开始菜单。smartphones不适用。
ScriptExe:主程序MortScript所在路径。smartphones不适用。
ScriptPath:当前脚本所在路径。
ScriptName:当前脚本名称。
ScriptExt:当前脚本的扩展名。
十八、文本文件的读、写:
string=ReadFile(file name[,length[,codepage]])
string=ReadLine(file name[,codepage])
读取一个文本文件内容。最大长度为1MB
读取一个文本文件的一行。再次运行则读取下一行。
codepage设置字符集。默认使用当前系统字符集。
支持INI文件。
WriteFile(file name,contents[,append?[,codepage]])
根据内容创建一个文本文件。若文件已存在,则被覆盖。
string=IniRead(file name,section,entry[,codepage])
读取一个INI文件,指定章节条目。section为章节用中括号定义,entry为章节下行条目。
IniWrite(file name,section,entry,value[,codepage])
把指定内容写入一个INI文件。section为中括号定义的章节,entry为中括号下定义的条目,valu为条目的值。
十九、串口使用:
SetComInfo(port,timeout[,baud rate[,parity[,bits[,stop bits[,control]]]]])
定义端口:setcominft(端口,超时(单位毫秒),波特率,奇偶校验,位数,停止位,控制)。
端口:com1-com9(大写字母和冒号),波特率:4800,9600,14400,19200,38400,57600,76800,115200。奇偶校验:
none,even,odd,mark,space。
倍数:4-8。停止位:1,1.5,2。控制:none,RTS/CTS,XON/XOFF。
二十、文件系统信息:
bool=FileExists(file name)
bool=DirExists(directory name)
返回一个布尔值,判断某文件、文件夹是否存在。
int=FreeDiskSpace(directory[,unit])
返回某文件夹所在磁盘的剩余空间大小。默认单位为bytes,指定unit参数可为:BYTES,KB,MB,GB。最大值:2147483147。
int=TotalDiskSpace(directory[,unit])
返回某文件夹所在磁盘空间大小。默认单位为bytes,指定unit参数可为:BYTES,KB,MB,GB。最大值:2147483147。
int=FileSize(file name[,unit])
返回某文件大小。默认单位为bytes,指定unit参数可为:BYTES,KB,MB,GB。最大值:2147483147。
int=FileCreateTime(file name)
返回某文件创建时间。
int=FileModifyTime(file name)
返回某文件修改时间。
bool=FileAttribute(file name,attribute)
返回某文件属性。attribute参数可为:directory,hidden,readonly,system,archive。(即:目录,隐藏,只读,系统,存档)
SetFileAttribute(file name,attribute,set?)
设置文件属性。set参数取true或false。为真时是确认设置该属性,为假时为去除该属性。
attribute参数可为:directory,hidden,readonly,system,archive。(即:目录,隐藏,只读,系统,存档)
SetFileAttribs(file name,read only?[,hidden?[,archive?]])
同时设置多重属性。
string=FileVersion(file name)
返回文件版本。(EXE类的程序较适用,得到程序版本。X.X.X.X格式)
GetVersion(file name,variable,variable,variable,variable):
同上,仅把x.x.x.x分开为四个变量。
array=DirContents(files,type)
返回一个文件、文件夹数组???
二十一、ZIP压缩包:
ZipFile(source file,ZIPfile,file name in archive[,rate])
创建单文件ZIP压缩包。(源文件,ZIP文件,在zip里的名称),参数rate为数字1-9,1为不压缩,9为最高,省略则默认为8。
ZipFiles(source files,ZIP file[,subdirectories?[,path in archive[,rate]]])
创建多文件ZIP压缩包。可使用通配符。subdirectories取值为true时,将包括子目录的匹配文件,false则不包含。path in archive为压缩
包里的文件夹名。
UnzipFile(ZIP file,file name in archive,target file)
解压ZIP压缩包里单文件。
UnzipAll(ZIP file,target directory)
解压ZIP压缩包。路径指定的文件夹不存在,则创建。
UnzipPath(ZIP file,path in archive,target directory)
解压ZIP压缩包里的指定文件夹及其子文件夹。
二十二、连接:
Connect
Connect(connection name)
Connect(title,message)
internet联网。少部分PPC不能支持。PC,PNA不适用。
CloseConnecttion
Disconnect
断开internet。PC,PNA不适用。对于Disconnect自WM5的AKU3版本后,不一定能支持。
bool=Connected()
bool=InternetConnected([URL])
返回连接状态。前者适用远程连接、ActiveSync连接等。后者适用一个internet的URL地址。PC,PNA不适用。
SetProxy(proxy)
设置代理。"proxy.foo.bar:8080"。PNA不适用。
Download(URL,target file)
下载文件。PNA不适用。
例:Download(" h t t p : / / w w w .abc.com/123.txt","\Storage\123.txt")
二十三、注册表:
value=RegRead(root,key,value name)
string=RegReadExt(root,key,value name)
读取注册表指定值。
root参数可用的简略写法:
HKCU =HKEY_CURRENT_USER
HKLM =HKEY_LOCAL_MACHINE
HKCR =KHEY_CLASSES_ROOT
HKUS =HKEY_USERS
如果value name为空字符串,可用
或@表示。
对于RegRead命令,参数的数据类型是自动转换的,如:DWords返回整型数;字符串返回字符型;二进制返回包含字符串的数据(如:010ACF)
;MultiString返回字符元素。
对于RegReadExt命令,跟RegRead相同,但是,返回的则采用软件的REG格式的注册表方式。如:用dword:00000000返回整型(十六进制),字
符串包含引号。hex:00,00为二进制;hex(7):00,00为multiple strings;hex(2):00,00为expandable strings。
RegWriteSting(root,key,value name,value)
RegWriteDWord(root,key,value name,value)
RegWriteBinary(root,key,value name,value)
RegWriteMultiString(root,key,value name,value)
RegWriteExt(root,key,value name,value)
写入指定值到注册表。
几个例子:
RegWriteDWord("HKCU","Software\Microsoft\Inbox\Settings","SMSDeliveryNotify",1)
RegWriteString("HKCU","Software\Mort\MortPlayer\Skins","Skin","Night")
RegWriteBinary("HKCU","Software\Mort\Dummy","","C000")
RegWriteMultiString("HKCU","Software\Mort\Dummy","Days",Array("Mon","Tue","Web"))
RegWriteExt("HKCU","Software\Mort\Dummy","IntVal","dword:0000002A")
bool=RegValueExists(root,key,value name)
返回一个布尔值,检查注册是否存在某值。
bool=RegKeyExists(root,key)
返回一个布尔值,检查注册是否存在某键。
string=RegType(root,key,value name)
返回某注册表值的数据类型。
RegDelete(root,key,value name)
移除注册表某值。
RegDeleteKey(root,key,values?,sub keys?)
移除注册表某键。
valuse为true时移除包括该键下的所有值。sub keys为true时,仅移除空的子键。如果键没有移除,则显示一个消息框。
二十四、对话框:(可视界面框)
string=Input(message[,title[,numeric?[,multiline?[,default]]]])
文本输入框。
numeric为真时,仅能输入数字,包括-和.。部分设备对此参数无效。
multiline为真时,显示为一个多行文本输入框。
default启用,它将显示在编辑框内。
Message(text[,title])
消息框。
BigMessage(text[,title])
大消息框。根据内容多少出现滚动条。
SleepMessage(seconds,message[,title[,ok allowed?[,condition]]])
倒计时条件消息框。
SetMessageFont(font size,font name)
设置消息框字号和字体。以上四种对话框均适用。font size为字号大小,单位为磅。font name为字体名,如:Tahoma或Arial。
int=Question(question[,title[,type]])
疑问对话框。参数type可为:YesNO;YesNoCancel;OkCancel;RetryCancel。并且该参数为字符型,使用引号。yes为1预定义变量为YES,no为0
预定义变量为NO,cancel为2预定义变量为CANCEL。
嵌套使用,如:
If(Question(...,"OkCancel")=CANCEL)
Switch(Question(...))
int=Choice(title,hint,default,timeout,value,value{,value})
int=Choice(title,hint,default,timeout,array)
倒计时选择列表框。(标题,提示文字,默认选择项,倒计时,项目1,项目2...)
SetChoiceEntryFormat(entry size[,font size,font name])
设置选择框选项高度和字号大小。entry size为选择框高度,单位为象素。font size为字号大小,单位为磅。font name为字体名,如:
Tahoma或Arial。
string=SelectDiretory(title,message[,default])
文件夹选择列表框。default为预定义路径。
string=SelectFile(title,save?,[filter[,info[,default]]])
文件选择列表框。save参数为真时,用户可以输入一个新文件名。filter参数文件过滤器,如*.txt,abc.*。info为文档摘要。default为预
定义路径。
二十五、窗口状态:
StatusType(style[,keep open?[,cancel button?]])
设置窗口状态类型。
style可用参数:ST_HIDDEN隐藏;ST_LIST列表消息框;ST_MESSAGE仅显示最近的消息框。
keep open参数:为真时,窗口将保持至脚本结束后,并显示一个OK按钮以关闭窗口。
cancel button参数:为真时,将显示一个cancel按钮在脚本运行期间。但不中断脚本运行。
StatusInfo(title[,info])
设置窗口标题和短信息。
StatusListEntryFormat(entry height[,font size,font name])
定义消息框列表框显示风格。
StatusHistorySize(count)
定义列表基本项目。
StatusMessage(message[style[,keep open?[,cancel?]]])
StatusMessageAppend(text)
追加文字至消息框。
StatusRemoveLastMessage()
StatusClear()
删除消息框或状态。
StatusShow()
显示和激活窗口状态。
WriteStatusHistory(file name[,append?[,code page]])
把现存所有消息框写入一个文件。
二十六、Processes(running applications)
bool=SupportsProcHandling()
返回布尔值检验设备是否支持进程类命令函数。
boot=ProcExists(process name)
返回布尔值检验某进程是否存在。
boot=ScriptProExists(script name)
返回布尔值检验给定的MortScript脚本是否运行。script name不能为mortScript.exe。
string=ActiveProcess([full path?])
返回当前活动窗口的程序名。full path设为真时,返回包含路径。
string=WindowProcess(window title[,full path?])
返回给定窗口标题的程序名。
Kill(process name)
终止应用程序进程。
警告:该命令可能引起数据丢失、冲突、错误的消息框。故建议尽量优先使用Close函数。
KillScript(script name)
终止运行的脚本。该命令将延时3秒执行。对于PC版本,指定全路径时,应该包括驱动器号。
注意不要配合CallScript、RunWait使用。
二十七、音量、震动、屏幕、光标、输入法:
SetVolume(value)
int=Volume()
设置或返回系统音量。value取值范围为:0-255。部分设备仅支持4、16等级。
PlaySound(WAV file)
播放一个WAV格式文件。
Vibrate(milliseconds)
按给定时间震动。PC版本中,则是以发出BEEP音代替。部分PPC设备中,也可能同时触发LED状态。
int=ColorAt(x,y)
获取给定位置的屏幕象素的色彩数。部分设备忽略标题栏,返回今日背景色彩数。
Array=ScreenToChars(x,y,width,height,color[,background color?[,char foreground[,char background]]])
转换屏幕指定范围的色彩数为数组。
int=RGB(red,green,blue)
int=Red(color)
int=Green(color)
int=Blue(color)
转换颜色代码为十进制数。red,green,blue取值范围均为0-255。
Rotate(orientation)
旋屏。
orientation参数:默认0不旋转;90右转;180倒置;270左转。
smartphone不支持。PC,PPC,PNA需WM2003以上版本。
SetBacklight(battery,external)
设置背光亮度。
battery参数:使用电池时背光亮度;external参数:则为使用外部电源。此两个参数取值范围:0-100。
注意:部分设备不支持本命令函数。且相同参数值对于不同设备,亮度不同。部分设置最高值,可能仅为10或60。部分设置可能为:
10=off;0=brightest。还有部分设置可能为:0=brightest;1=darkest;10=next to brightest。
本命令函数对PC,PNA,SP设备无效。
ToggleDisplay(on?)
旋屏。参数取值为:true,false。
本命令函数对PC,PNA,SP设备无效。
int=ScreenWidth()
int=ScreenHeight()
返回屏幕尺寸。单位像素。
bool=Screen(type)
返回布尔值判断屏幕类型。type参数有效值:landscape;portrait;square;vga;qvga;
该命令PC不适用。
RedrawToday
刷新今日。
该命令PC不适用。
ShowWaitCursor
HideWaitCursor
显示或隐藏等待光标。
string=CurrentCursor([Window])
检索当前窗口的鼠标(触笔)状态类型。省略指定窗口,则返回最近使用的窗口的。
返回值:arrow(默认);wait;cross;help;uparrow;other。
ShowInput
HideInput
显示或隐藏输入面板。
PC,SP无效。
SetInput(input type)
设置输入类型。如:Keyboard、Transcriber。
PC,SP无效。
二十八、剪贴板:
SetClipText(text)
复制文本至剪贴板。
string=ClipText()
返回剪贴板的文本内容。
注意:1、剪贴板要存在内容。2、内容为文本。
二十九、内存:
int=FreeMemory([unit])
返回剩余的程序内存大小。
unit有效值:BYTES(省略默认值)、KB、MB、GB。
int=TotalMemory([unit])
返回总程序内存大小。
unit有效值:BYTES(省略默认值)、KB、MB、GB。
三十、电量:
bool=ExternalPowered()
返回使用电源类型。true为外接电源。false为电池。
int=BatteryPercentage()
int=BackupBatteryPercentage():部分设备无效。
返回当前电池、备用电池百分比等级。WM5以上系统支持。
当使用外接电源时,此返回值不正确。PC则总是返回100,包括笔记本。
PowerOff
进入待机模式。
PC无效。
IdleTimeReset
重设系统自动关屏时间。
PC无效。部分设备无效。
注意:如果使用了背景灯时间控制,则可能本命令无效。
Reset
软重启设备。
PC无效。
三十一、系统:
value=SystemVersion([element])
返回系统版本。
如果参数无效或省略,则返回:major,minor,build。/platform
如:5.1.2600 for XP with SP2或5.1.21888等。
string=MortScriptType()
返回当前MortScript的版本类型。
如:PPC、PC、SP、PNA。
string=MortScriptVersion()
GetMortScriptVersion(variable,variable,variable,variable)
获取MortScript版本号。