MortScript教程.docx_第1页
MortScript教程.docx_第2页
MortScript教程.docx_第3页
MortScript教程.docx_第4页
MortScript教程.docx_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

MortScript教程(一)(2009-10-03 21:21:26) 转载标签: it语法-允许的参数格式:- 字符串 被引用的字符串: 包含 空格 逗号 下划线, 使用双引号引起来 包含逗号s (举例来说 这是 quoted), CR=回车, LF=换行, NL=新的一行 (Windows/DOS = CRLF), TAB=制表符.另起一行可以使用 做为最后的字符.例如:Message message, Title注释必须以 # 开头 (尾随空格被允许).例如:# This is a comment如果 x = 被使用, 它后面的是一个函数. (详见条件)这种情况下, 它返回一个值,且必须用在一个表达式中 (命令参数 或 条件) 例如:var = Input( 输入一个值 )Message( 你的输入: & Input( 值: ) )If(wndExists( Explorer ) )if(FileExists(fontpath & font.mscr)if(fdsfs) #比较变量大小if(not DirExists(storageROM)#弹出询问框,根据回复选择操作if(question(Delete all files in & & ?)Error handling-ErrorLevel( off|critical|syntax|error|warn )设定变量-Set( , ) (好于使用 = ) = 例如:CmName= #将变量CmName的值清空%j%=%j%+1%j%=%LevelNum%+1FontPath = RegRead(HKLM,SOFTWAREMicrosoftFontPath,FontPath )fs=FileSize(xxx)+1000 #变量fs等于文件的大小+1000fds=FreeDiskSpace( fontpath ) #变量fds等于的自由空间大小适用的操作 (变量 = 表达式), 列表, 表达式变量左右的百分号是可选的 (也就是, %x% = %y%z% 等同于 x = yz), 字符串必须引起来.布尔参数 (yes/no, true/false), 1 is yes/true, 0 is no/false.这里是所有预定义变量:ON, YES, TRUE = 1OFF, NO, FALSE = 0CANCEL = 2变量的使用-1,直接使用变量的值例:Message %month% 若month=04,则只显示04 Sleep %iDelay% MouseClick %ClsBL_xPos%,%ClsBL_yPos%2,用&连接变量与字符串:GetTime(hour, minute, seconds, day, month, year) day=30,month=04, year=2008run (存储卡备份&year&-&month&-&day-1&.pbf) 执行 2008-04-29.pdf3,比较变量大小if(fdsfs)字符串操作-x = Split( , ) (如果只有一个变量, its used as 排列)例:Split( Tahoma,false,TahomaFilePath,TahomaFontName )x = Part( , )x = Length( )x = SubStr( , )x = Find( , )x = ReverseFind( , )x = ToUpper( )x = ToLower( )评价表达的字符串-x = ( ) 例: res = (var & index & & .)执行-Run( , )例如:run WindowsLockAppp.exe,-startup run TempTPDisable.exe run Windowszta4.ccs 直接执行已经关联了应用程序的文件 run Storageromgsfind.reg Run(WindowsMortScript.exe,Storagerom_AutoSetup.mscr) GetTime(hour, minute, seconds, day, month, year) day=30,month=04, year=2008 run (存储卡备份&year&-&month&-&day-1&.pbf) 执行 2008-04-29.pdfRunWait( , )例如:runwait(fontpath & font.mscr) #执行font.mscr runwait(WindowsMortScript.exe,Storage_sys.mscr) #用CeleCmd导入reg文件 runwait(WindowsCeleCmd.exe,fontpath & font.reg) runwait(CeleCmd.exe,Storage Cardreg*.reg) 无效,被biaosoft骗了 再说CeleCmd并不能把reg文件里的所有信息全部导入注册表,不信大家可以试试 RunWait Ctlpnl.exe,Cplmain.cpl,4New( ) (仅用于 Windows Mobile)RunAt( , , )RunAt( , , , , , , )RunOnPowerOn( , ) 开机时运行RemoveNotifications( , ) 删除通知Dialog 对话框 (给变量x赋值)-;选择列表x = Choice( , ) (如果只给出一个文本, 将是一个默认设置项)x = Choice( , )x = Input( , , , , )例如:CardName=input(请输入存储卡名称:,更改存储卡名称,0,0,Storage Card) ringpath=input(请输入铃声路径,更改铃声目录,0,0,WindowsRings)Message ,Message 通知 等同于 Message (通知)Message %month% 引用month的值。若month=04,则只显示04BigMessage ,SleepMessage( ,condition )例如:sleepmessage 2,配置文件复制成功!,硬启后安装,truex = Question( , , ) (Type=OkCancel,YesNo,YesNoCancel; Yes/OK=1,No=0,Cancel=2)例如:if(question(Delete all files in & & ?)窗口控制-Show( )Minimize( )Close( )x = ActiveWindow()x = WndActive( )x = WndExists( )WaitFor( , )WaitForActive( , )x = WindowText( , )SendOK ( ) SendCancel ( ) SendYes ( ) SendNo ( ) 发送按键-SendKeys( , )Send ( , ) 特殊字符:CR, Tab, Esc, Space, Backspace, Delete, InsertUp, Down, Left, Right, Home, End, PageUp, PageDown,LeftSoft, RightSoft, Win, ContextSnapshot ( ) SendCtrlKey( , )发送点击 (鼠标事件)-;鼠标单击MouseClick( , )MouseClick %ClsBL_xPos%,%ClsBL_yPos%;鼠标双击MouseDblClick( , );按下鼠标键事件?MouseDown( , );放开鼠标键事件?MouseUp( , )仅用于PC版: 那些以 Middle 或 Right 为前缀的按钮, 举例来说 RightMouseClick(.)等待-Sleep ()例如:sleep 5000 #等待5秒 sleep(5000) sleep %iDelay%SleepMessage( ,条件)例如:sleepmessage 2,请等待WaitFor( , )WaitForActive( , )时间-x = Time() (Unix timestamp)x = FormatTime( , ) (formatted)#获取当前时间,给括号中的变量赋值#获取 时、分、秒GetTime( , )例如:GetTime(hour, minute, seconds)#获取 时、分、秒、日、月、年GetTime( , )例如:GetTime(hour, minute, seconds, day, month, year) day=30,month=04, year=2008 if(year2008)读写文本文件-x = IniRead( , )x = ReadFile( )WriteFile( , )例如:WriteFile(storage_sys.mscr,RegWriteString()CRLFcopy ()CRLF)WriteFile(storage_sys.mscr,copy()CRLF,true)文件系统信息-x = FileExists( ) 检测文件是否存在例如:FileExists(fontpath & font.mscr)x = FileCreateTime( ) 检测文件创建时间x = FileModifyTime( ) 检测文件修改时间x = FileSize( ) 检测文件大小x = FreeDiskSpace( ) 检测路径磁盘空间x = FileAttribute( , )SetFileAttribute( , , ) 属性允许的值 目录 (可以被设置), hidden, readonly, system, archiveSetFileAttribs( , ) (1=+ 即设置,0=- 即移除,/omit=保持)x = FileVersion( )GetVersion( , )目录操作-MkDir( ) #新建目录 只能逐级新建目录例如:mkdir(StorageWindows) mkdir(StorageWindowsFonts)RmDir( )ChDir( ) 仅用于PC版本SystemPath( ) 路径有效值: ProgramsMenu, StartMenu, Startup, Documents, ProgramFiles, ScriptExe, ScriptPath, ScriptName, ScriptExtx = DirExists( ) 检测目录是否存在复制, 重命名, 移动, 删除 文件-Copy( , )例如:copy(windowsconfig.ini,storageconfig.ini,true) GetTime(hour, minute, seconds, day, month, year) copy(存储卡备份clf我的文件&month&day-1&.clf),Storage我的文件.clf,true)XCopy( , )例如:XCopy(Tempfont*.*,FontPath,true)#重命名,可同时移动文件Rename( , )GetTime(hour, minute, seconds, day, month, year)Rename( (存储卡Backup_&year&-&month&-&day&.pbf),(存储卡备份&year&-&month&-&day&.pbf),true )Move( , )Delete( ) 删除若干个文件例:Delete(Windows启动LoadSetup.lnk) Delete(Windows启动*.*)DelTree( ) 例:DelTree( fontpath & *.*)CreateShortcut( ,目标文件 )例如:创建启动项 CreateShortcut( Windows启动LockApp.lnk,WindowsLockAppp.exe -startup ) 转U盘启动项 CreateShortcut( Windows启动Card Export II.lnk,.CardExportSetup.exe /s )压缩包-请注意: ZIP 不支持中文文件名,解压后是乱码压缩率: 0=不压缩, 9=最高压缩率ZipFile( , )ZipFiles( , )UnzipFile( , )UnzipAll( , ) 例如:UnzipAll( Storage CardROMFont.zip,Tempfont )UnzipPath( , )端口评估-SetComInfo( , , , , , , )端口: 从COM1: 到 COM9:比特率: 通常使用其中之一 4800, 9600, 19200, 38400, 57600, 76800, 115200奇偶校验: none, even, odd, mark, space位数: 4-8, 通常使用 8stop bits: 1, 1.5, 2control: none, RTS/CTS, XON/XOFF连接-Connect( ) 指定连接名字Connect( , ) 选择连接Connect 用于默认 http 连接CloseConnection 仅关闭Connect建立的连接Disconnect 关闭所有连接 (GPRS, ActiveSync, .)x = Connected()x = InternetConnected( )SetProxy( ) not necessary 如果连接被使用Download( , )注册表操作 root根路径,path路径,key键,value值注意:路径、值中是单斜杠-RegWriteString( , ) 路径中是单斜杠,reg导出文件中的用Default代替例如:写入字符串值,SPB plus安全模式RegWriteString (HKLM,init,Launch49,SafeMode.exe)默认打开短信RegWriteString(HKCU,SoftwareMicrosoftInboxSettings,CurServiceName,SMS)创建一个空的键,打开全局的清晰字体RegWriteString(HKLM,SystemGDIClearType,)RegWriteDWord( , )例如:写入双字节值,蓝牙补丁相关RegWriteDWord(HKLM,SOFTWAREMicrosoftBluetoothl2cap,ConnectPacketType,52248)RegWriteBinary( , )写入二进制值x = RegRead( , )例如:RegRead(HKLM,SOFTWAREMicrosoftFontPath,FontPath )RegDelete( , )RegDeleteKey( , )x = RegKeyExists( , )x = RegValueExists( , )root 值:HKCU (HKEY_CURRENT_USER)HKLM (HKEY_LOCAL_MACHINE)HKCR (HKEY_CLASSES_ROOT)HKUS (HKEY_USERS)二进制值 are handled as 字符串 用十六进制dump, 举例来说: 01020A.进程-x = ProcExists( ) 检测程序进程是否存在例如:While(ProcExists(welcome.exe) if(ProcExists(welcome.exe)x = ScriptProcExists( ) 检测脚本进程是否存在x = ActiveProcess() 活动进程Kill( ) 结束进程例如:kill(SMSTimeSync2.exe)KillScript( ) 结束脚本Signals-SetVolume( ) (仅用于Windows Mobile) 蛇豆音量PlaySound( ) 播放wav文件Vibrate( ) 震动n毫秒显示/屏幕-x = ColorAt( , )LineColor1 =ColorAt(%xPos%, %yPos%)x = RGB( , )Rotate( 0|90|180|270 ) (仅用于 WM2003 SE 或更高) 旋转屏幕SetBacklight( , ) (仅用于PPC) 设置背光ToggleDisplay( ) (仅用于PPC) 切换显示x = Screen( landscape|portrait|vga|qvga )RedrawTodayShowWaitCursor 显示等待光标HideWaitCursor 隐藏等待光标剪贴板-SetClipText( )x = GetClipText()内存-x = FreeMemory() 自由内存x = TotalMemory() 内存总量电量-x = ExternalPowered() 外部供电x = BatteryPercentage() 电池的百分比PowerOffIdleTimerReset (仅用于PPC)System-MortScriptType() MortScript类型?x = SystemVersion( ) 元素: major, minor, build, platform, 忽略 for major.minor.buildReset (仅用于PPC) 重启机器程序流程的控制结构-if() elseif() else message(NewFontFile & )exitendifendifif()if() if()else 无效,不知道怎么回事endif不支持以下命令?If ( ) ElseIf ( ) Else EndIf- Choice ,.| ChoiceDefault ,.Case ,.EndChoice(如果只给出一个文本, 将是一个默认设置项)(原文:if only one text is given, its assumed to be a array variable)例如:sub SetMenuChoice 调整选项,选择一个项目进行操作, Case 1的项目标题, Case 2的项目标题, Case n的项目标题 Case 1 call SetMenu Case 2 endChoiceendsubChoiceDefault 选择操作,选择一个项目进行操作,1,20, 执行用户脚本并退出, 更多设置-Switch Case ,.EndSwitch-While EndWhile例如:While(ProcExists(welcome.exe) #检测进程屏幕调整 sleep 1000 #等待 EndWhile-Repeat EndRepeat例如:Repeat 6 #重复操作6次 EndRepeat- ForEach in values ,| ForEach in split ,| ForEach in array | ForEach in charsOf ,| ForEach in iniSections | ForEach , in iniKeys ,| ForEach in 文件s ,| ForEach in directories ,EndForEachCall 例:call SetMenu Sub SetMenu ChoiceDefault CallScript ;子程序的设置一定要放到 Case 语句下面。否则其下的 Case 无效Sub EndSub=表达式 表达式的结果, 例如:Variable = &variable-字符串: 任意文本, in quotes数字: 123 (only integer 操作!)变量: 变量, arrayindex操作优先权 (第一个优先权最高):() 括在一起,可在一些特殊情况下替代 NOT 否定 (TrueFalse)* / MOD 乘以, 除以, modulo (剩余)+ - 加上, 减去& 串联字符串 ( for paths)例如:DelTree( fontpath & *.*) fontpath & font.mscr = StorageFontsfont.mscr, =, , =, =, 数值比较gt, ge, lt, le, eq, ne 阿尔法数值比较gtgeltleeq 等于ne 不等于AND & 二进制值/logical andOR | 二进制值/logical or数值比较和阿尔法数值比较的比较有相同的优先权,他们仅区别于如何更好的描述.AND 和 OR use 二进制逻辑值, 也就是 3 AND 7 将返回 3 (111 AND 011 = 011)& 和 | 使用 C logic, 也就是任何值不是 0 就是 true (1), 所以 3 & 7 将返回 1.条件-如果仅仅比较, 请使用函数代替也就是 If ( wndExists( window ) ) 用 If wndExists window 代替 例如:if FileExists 存储卡备份2008-04-30.pbf不是纯字符串的必须用() 代替 例如:if FileExists (存储卡备份&year&-&month&-&day&.pbf)not dirExists 检测目录是否存在例:if(not DirExists(storageROM)not equals , 检测相等 例:if( eq ) if(fdsfs)not expression_r 检测表达式?not fileExists 检测文件是否存在例:if(FileExists(fontpath & font.mscr)not procExists not question , 提出问题 例:if(question(Delete all files in & & ?)not regKeyExists , 检测注册表键是否存在not regKeyEqualsString , 检测注册表键值是否为字符串值not regKeyEqualsDWord , 检测注册表键值是否为双字节值not screen landscape|portrait|vga|qvganot wndExists 检测窗口是否存在例:If(wndExists( Explorer ) )not wndActive 检测窗口是否活动Obsolete (旧的,废弃的)-, (举例来说: %var & %index% & % & . )Input ,GetPart ,SubStr ,Find ,ReverseFind ,MakeUpper MakeLower GetRGB ,GetActiveWindow GetVersion ,IniRead ,ReadFile ,GetSystemPath ,RegReadString ,RegReadDWord ,RegReadBinary ,Inp

温馨提示

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

评论

0/150

提交评论