脚本格式及范例

巧用批量下载获取海量学习资源

 

第二篇:示例脚本

gosub 测试倒计时弹窗Gosub 测试创建文件夹Gosub 测试更改文件夹属性Gosub 测试删除文件\文件夹Gosub 测试搜索文件Gosub 测试遍历子文件夹Gosub 测试获取系统特殊文件夹路径Gosub 测试按段读取文本Gosub 测试字符串搜索Gosub 测试字符串搜索2Gosub 测试排序Gosub 测试随机排序Gosub 测试数组搜索Gosub 测试进制转换Gosub 测试简繁转换Gosub 测试农历日期Gosub 测试加解密字符串Gosub 测试加解密文本Gosub 测试获取本机IP及MAC地址Gosub 测试获取网站Gosub 测试获取指定URL的本地缓存地址Gosub 测试html进制转换Gosub 测试遍历系统进程/窗口Gosub 测试修改窗口标题Gosub 让窗口拒绝接受键盘和鼠标事件Gosub 测试暂停进程Gosub 测试运行程序/关闭进程Gosub 测试获取进程路径Gosub 测试获取指定进程句柄的内存占用量Gosub 测试限制鼠标Gosub 测试电脑语音命令EndScript sub 测试倒计时弹窗Plugin lxj_Plug.lxj_Message(5,"还剩TIME秒","倒计时") return 测试倒计时弹窗Sub 测试创建文件夹//由于自带的插件命令只能在已有的目录下创建一级子文件夹,因此写了本函数//支持任意正确路径创建文件夹path="D:\D\D\D\"Plugin lxj_Plug.lxj_CreatFoldEX(path)VBSCall RunApp("D:\")MSGBOX "创建完成"Return 测试创建文件夹Sub 测试更改文件夹属性//本命令参数1为文件或文件夹路径,本例中已刚刚新建的文件夹为例演示//参数2以后为属性类型,可选参数包括"常规","只读","隐藏","系统"//注意:属性设置不是在原有基础上增加属性,而是重新设置path="D:\D"MessageBox "下面为新建的D:\D文件夹设置隐藏属性"Plugin lxj_Plug.lxj_SetFold(path,"隐藏")MessageBox "下面为新建的D:\D文件夹设置系统属性"Plugin lxj_Plug.lxj_SetFold(path,"系统")MessageBox "设置为系统属性后隐藏属性失效"&chr(10)&"下面为新建的D:\D文件夹设置系统+隐藏属性"Plugin lxj_Plug.lxj_SetFold(path,"系统","隐藏")MessageBox "演示完毕,下面为新建的D:\D文件夹设置常规属性"Plugin lxj_Plug.lxj_SetFold(path,"常规")Return 测试更改文件夹属性Sub 测试删除文件\文件夹//由于按键自带的DeleteFolder和DeleteFile删除命令都是不经过回收站的,因此添加本函数//参数1,完整路径//参数2,可选参数,默认为0,表示删除到回收站,为1则表示直接删除//注:当参数2为除0和1以外的参数时,会有提示框并彻底删除文本//本函数无返回值MessageBox "创建演示用文件夹"Plugin lxj_Plug.lxj_CreatFoldEX("C:\lxj_TMP1\lxj_TMP2")VBSCall RunApp("C:\lxj_TMP1\lxj_TMP2")MessageBox "创建演示用文本"Plugin File.Write

FileEx("C:\lxj_TMP1\lxj_TMP2\Lxj_TMP3.txt", "测试")Delay 1000MessageBox "下面将新建的文件删除到回收站"Plugin lxj_Plug.lxj_Recycle("C:\lxj_TMP1\lxj_TMP2\Lxj_TMP3.txt")MessageBox "下面将新建的子文件夹彻底删除"Plugin lxj_Plug.lxj_Recycle("C:\lxj_TMP1\lxj_TMP2",1)VBSCall RunApp("C:\lxj_TMP1")MessageBox "下面将新建的文件夹彻底删除(有提示框)"Plugin lxj_Plug.lxj_Recycle("C:\lxj_TMP1",2)MessageBox "演示完毕"Return 测试删除文件\文件夹Sub 测试搜索文件path="c:\windows"//下面的函数查找文件夹,参数1为文件夹路径。//参数2为可选参数,字符串型,为查找的内容(格式为名称+后缀),支持"*"号匹配,默认为"*.*",即查找全部文件//参数3为可选参数,整数数值,设置查找的子文件夹级数。如0表示不查找子文件夹,1表示查找到1级子文件夹。//---注意:参数3不输入时遍历查找路径下所有子文件夹Plugin a=lxj_Plug.lxj_LookFile(path,"*.dll",1)//返回值为数组,第一个元素为查找到的文件个数,其后为各文件的路径i=0For a(0)+1msgbox a(i)i=i+1EndFor msgbox "a"Return 测试搜索文件Sub 测试遍历子文件夹path="F:\"//参数为文件夹路径,返回数组,包括了此文件夹下所有子文件夹名//注:子函数不支持查找隐藏文件夹Plugin x=lxj_Plug.lxj_SerchFolds(path)msgbox ubound(x)i=0For ubound(x)+1msgbox x(i)i=i+1EndFor Return 测试遍历子文件夹Sub 测试获取系统特殊文件夹路径//本命令参数为数值型,可以从1设到256//具体什么数值对应什么文件夹,请通过下面的演示自己看i=1For 256Plugin path=lxj_Plug.lxj_GetSpecialPath(i)msgbox i&chr(10)&path,4096i=i+1EndFor Return 测试获取系统特殊文件夹路径Sub 测试按段读取文本path="c:\测试.txt"Plugin txt=lxj_Plug.lxj_txtline(path)//返回结果数组,第一个元素为段数,后面分别为从第一段到最后一段。未找到则数组第一个元素返回0//计算段落数If txt(0)<>0MessageBox "本TXT共有"&txt(0)&"段"//读取第一段MessageBox "第一段内容为:“"&txt(1)&"”"MessageBox "第二段内容为:“"&txt(2)&"”"//读取最后一段MessageBox "最后一段内容为:“"&txt(txt(0))&"”"Else MessageBox "文本无内容"EndIf Return 测试按段读取文本Sub 测试字符串搜索a="按键和精灵按键精灵as按键精灵dfghjk按键精灵lqwerty按键精灵"b="按键精灵"//参数3为可选参数,整数型数值,用于设置每次搜索的开始位置,默认为1,即从初始位置开始搜索

//参数4为可选参数,整数型数值,用于设置每次搜索的结束位置,默认为搜索到结尾处//参数5为可选参数,指示在计算子字符串时使用的比较类型的数值。0执行二进制比较,1执行文本比较。默认为0Plugin string_return=lxj_Plug.lxj_instr(a,b,1, len(a)-5)//返回数组,第一个元素为找到的个数,其后各元素包含从开始处往结尾处出现的所有位置,未找到则第一个元素返回0If string_return(0)<>0i=1For string_return(0)MessageBox "第"&i&"次出现的位置为:"&string_return(i)i=i+1EndFor Else MessageBox "搜索的字符串不存在"EndIf Return 测试字符串搜索Sub 测试字符串搜索2a="按键和精灵按键精灵as按键精灵dfghjk按键精灵lqwerty按键精灵"b="按键精灵":c="按键"//参数1为被搜索字符串,本函数用来搜索参数2,参数3所设置的两字符串之间的字符,返回数组,第一个元素为个数,其后分别为各字符串//参数4为可选参数,整数型数值,用于设置每次搜索的开始位置.默认为1,即从初始位置开始搜索//参数5为可选参数,整数型数值,用于设置每次搜索的结束位置,默认为搜索到结尾处//参数6为可选参数,指示在计算子字符串时使用的比较类型的数值。0执行二进制比较,1执行文本比较。默认为0Plugin string_return=lxj_Plug.lxj_FindStr(a,b,c,1, ,0)//返回数组,第一个元素为找到的个数,其后各元素包含从开始处往结尾处出现的所有字符串,未找到则第一个元素返回0If string_return(0)<>0i=1For string_return(0)MessageBox "第"&i&"次出现为:"&string_return(i)i=i+1EndFor Else MessageBox "搜索的字符串不存在"EndIf Return 测试字符串搜索2Sub 测试排序//生成随机数组dim x(10)i=0:atp=""For 10Randomizex(i)= Int(100 * Rnd)atp=atp&"|"&x(i)i=i+1EndFor //按从小到大的顺序重排数组,返回新数组各元素值在原数组中的下标Plugin q=lxj_Plug.lxj_ReLine(x)//显示结果i=0:tmp=""For ubound(q)+1tmp=tmp&"|"&q(i)i=i+1EndFor //显示从小到大i=0:new_x_left=""For ubound(q)+1new_x_left=new_x_left&"|"&x(q(i))i=i+1EndFor //显示从大到小i=ubound(q):new_x_right=""For ubound(q)+1new_x_right=new_x_right&"|"&x(q(i))i=i-1EndFor MessageBox "原随机数组为:"&atp&chr(10)&"排序后下标为:"&tmp&chr(10)&"从小到大排序:"&new_x_left&chr(10)&"从大到小排序:"&new_x_rightReturn 测试排序Sub 测试随机排序//本插件命令用来从已

知数组随机抽取数据,返回值为数组//----下面以22选5为例----//生成数组dim arr1(22)s=0:i=1For 22arr1(s)=is=s+1i=i+1EndFor //命令中参数1为数组变量名,参数2为可选参数,整数型,表示抽取数量。//参数2大于0时返回抽取的数组,不设置或者设置数量大于原数组中元素个数时按全部抽取;参数2为其他值时返回""Plugin b=lxj_Plug.lxj_Rndline(Arr1,5)//显示返回值i=0:result=""For UBound(b)+1result=result&cstr(b(i))&"|"i=i+1EndFor MessageBox resultReturn 测试随机排序Sub 测试数组搜索dim name(),result()str="aa:1|ba:2|ca:3|da:4|ea:5|fa:6|ga:7|f:8|e:9|d:10|c:11|b:12|a:13"a=split(str,"|")i=0//生成对应数组For ubound(a)+1b=split(a(i),":")ReDim Preserve name(i)ReDim Preserve result(i)//生成的arr数组和result数组一一对应name(i)=b(0):result(i)=b(1)i=i+1EndFor //从name数组中搜索名称含"b"的项,搜索到以后返回数组,第一个元素为搜索到的数量,其后分别为对应的下标。,未找到则第一个元素返回0//参数1为被搜索数组,参数2为搜索字符串,//参数3为可选参数,代表搜索方式,0为完全匹配,1为模糊搜索,默认为完全匹配搜索name0="b"Plugin b_return=lxj_Plug.lxj_SearchArr(name,name0,1)If b_return(0)<>0MessageBox "共找到"&b_return(0)&"个名称含"&name0&"的项目"//下面通过找到的下标获取对应的结果进行求和操作totle=0:s=1For num_returntotle=totle+int(result(b_return(s)))s=s+1EndFor MessageBox "名称下含有总值为"&totleElse MessageBox "名称不存在"EndIf Return 测试数组搜索Sub 测试简繁转换//参数1为被转换字符串,参数2为转换类型参数,0为繁转简,1为简转繁x="按键精灵简繁转换"Plugin y=lxj_Plug.lxj_Convert(x,1)msgbox yPlugin z=lxj_Plug.lxj_Convert(y,0)msgbox zReturn 测试简繁转换Sub 测试进制转换//参数1为待转换字符(字符串型),参数2为原进制,参数3为转换后进制Plugin x=lxj_Plug.lxj_TransformH("ff00ff",16,10)msgbox xPlugin y=lxj_Plug.lxj_TransformH(x,10,16)msgbox yReturn 测试进制转换Sub 测试农历日期Plugin d=lxj_Plug.lxj_NongliDayStr(now)MessageBox "今天是:"&dReturn 测试农历日期Sub 测试加解密字符串//Encipher和Decrypt也可反用str="按键精灵 7.20.5178"key=""Plugin temp=lxj_Plug.lxj_Encipher(str,key)MessageBox tempPlugin newstr=lxj_Plug.lxj_Decrypt(temp,key)MessageBox newstrReturn 测试加解密字

符串Sub 测试加解密文本//创建测试文本path="c:\lxj_tmp.txt"Plugin File.WriteFileEx(path, "内容and测试")Plugin lxj_Plug.lxj_LockFile(path,"ajjl")MessageBox "加密完成"Plugin lxj_Plug.lxj_LockFile(path,"ajjl",1)MessageBox "解密完成"Return 测试加解密文本Sub 测试获取本机IP及MAC地址//获取本机IP地址Plugin IP=lxj_Plug.lxj_GetIP()msgbox "IP:"&IP//获取本机所有网卡的MAC地址Plugin MAC=lxj_Plug.lxj_GetMAC()msgbox "MAC:"&MACReturn 测试获取本机IP及MAC地址Sub 测试获取网站url=""//url 地址也可简化写成不要"“http://”头//如: url=""Plugin Html=lxj_Plug.lxj_GetHtml(url)MessageBox HtmlReturn 测试获取网站Sub 测试获取指定URL的本地缓存地址URL1=""URL2="/index.php"//参数1为网址,参数2为匹配类型,默认为0,表示完全匹配,填写1则表示包含参数1的网址//返回数组形式的缓存地址,第一个元素为查找到的数量,其后分别为各个路径Plugin localpath=lxj_Plug.lxj_GetCache(URL1,1)MessageBox "缓存中共找到含"&chr(10)&URL1&chr(10)&"的路径"&localpath(0)&"个"//可通过ReadFileEx直接得到本地缓存内的网页源码Plugin localpath=lxj_Plug.lxj_GetCache(URL2)If localpath(0)>0Plugin localhtml = File.ReadFileEx(localpath(1))localhtml=replace(localhtml,"|",chr(10))MessageBox localhtmlEndIf Return 测试获取指定URL的本地缓存地址Sub 测试html进制转换//某些时候我们会碰到如下的网址或者源码,因此写了个转换函数//参数1为待转换字符串,参数2为转换类型,可选参数,0表示解码,1表示编码,默认为0str="viewthread.php?tid=101385&extra=page%3D1"Plugin newstr=lxj_Plug.lxj_HtmlCode(str)MessageBox newstr//实际上下面这个编码命令基本上没啥用,因为是对所有符号进行转换了Plugin str1=lxj_Plug.lxj_HtmlCode(newstr,1)msgbox str1Return 测试html进制转换Sub 测试遍历系统进程/窗口//本插件主要用来遍历有窗口的进程,因此返回的进程并不是电脑中所有运行程序//本插件前6个参数均为返回值,数组形式,下标对应为一组//6个返回数组分别对应为,进程句柄、进程名、窗口句柄、程序路径、窗口标题、窗口类名//参数7为筛选类型,可选参数,默认为1遍历可见窗口,2为遍历激活窗口,3为遍历可见且激活窗口,0为遍历所有窗口//若前6个参数中某一个或某几个在执行函数前被赋值了。则运行函数后将以此为筛选条件。//下面演示查找所有进程名为"QQ.exe"的程序的窗口句柄,注意进程

名中大小写Process="QQ.exe"Plugin lxj_Plug.lxj_FindWindows(PID, Process, hwndex, path, Text_Name, Class_Name,3)i=0For ubound(hwndex)+1hwnd=hwnd&hwndex(i)&chr(10)i=i+1EndFor msgbox "共找到进程为QQ.exe的窗口"&ubound(Process)+1&"个,窗口句柄分别为:"&chr(10)&hwnd//若前6个参数均未被赋值,则运行函数后分别对应返回的数组变量名。例:Plugin lxj_Plug.lxj_FindWindows(PID, Process_name, hwndex, path, Text_Name, Class_Name,3)//下面显示返回值i=0For ubound(hwndex)+1msgbox (i+1)&chr(10)&"进程句柄:" &pid(i)&chr(10)&"进程名:" &Process_name(i)&chr(10)&"窗口句柄:" &hwndex(i)&chr(10)&"程序路径:" &path(i)&chr(10)&"窗口类名:"&Class_Name(i)&chr(10)&"窗口标题:" &Text_Name(i),4096i=i+1EndFor Return 测试遍历系统进程/窗口Sub 测试修改窗口标题title0="我的电脑"new_title="κiζs笑紅塵"//下面先通过原标题title0获取窗口句柄,以便查看效果Plugin Hwnd1 = Window.Find(0, title0)//用下面命令修改标题的窗口需能够直接由标题读出句柄//参数1,原标题。参数2,新标题。无返回值Plugin lxj_Plug.lxj_ChangeHwndTitle(title0,new_title)//修改完成后用原标题获取句柄,以便查看效果Plugin Hwnd2 = Window.Find(0, title0)//修改完成后用新标题获取句柄,以便查看效果Plugin Hwnd3 = Window.Find(0, new_title)MessageBox "修改前使用原标题获取句柄为:"&Hwnd1&chr(10)&"修改后使用原标题获取句柄为:"&Hwnd2&chr(10)&"修改后使用新标题获取句柄为:"&Hwnd3Return 测试修改窗口标题Sub 让窗口拒绝接受键盘和鼠标事件VBSCall RunApp("notepad.exe")msgbox "请用鼠标滚轮点击记事本标题栏"click=0While click<>32777WaitClick clickEndWhile //下面这句是得到鼠标指向的窗口句柄Plugin Hwnd = Window.MousePoint()Plugin Hwnd1 = Window.GetKeyFocusWnd()Plugin lxj_Plug.lxj_EnableKM(Hwnd,0)MessageBox "现在试试在记事本里点击鼠标或按下键盘,看看是不是屏蔽了"MessageBox "下面我将通过后台向记事本窗口发送字符串,并后台按下字母A"Plugin Window.SendString(Hwnd1, "测试成功")Plugin Bkgnd.KeyPress(Hwnd1, 65)MessageBox "演示结束,点击滚轮恢复窗口"click=0While click<>32777WaitClick clickEndWhile Plugin lxj_Plug.lxj_EnableKM(Hwnd,1)Return 让窗口拒绝接受键盘和鼠标事件Sub 测试暂停进程msgbox "请先选择TTplayer的执行程序"Plugin path=File.SelectFile()//运行程序并返回PID值Plugin PID=lxj_Plug.lxj_apprun(path)//本函数使用含有风险,请先仔细看清说明//参数1为进程PID,可由按键自带插件获取,参数2

为可选参数,0为暂停,1为恢复,默认为0msgbox "音乐打开后关闭本窗口"Plugin s=lxj_Plug.lxj_TaskSleep(PID)msgbox smsgbox "进程已暂停,关闭本窗口恢复"Plugin s=lxj_Plug.lxj_TaskSleep(PID,1)msgbox sReturn 测试暂停进程Sub 测试运行程序/关闭进程//运行程序并返回PID值Plugin PID=lxj_Plug.lxj_apprun("C:\WINDOWS\system32\notepad.exe")//Plugin PID=Web.Bind("C:\WINDOWS\system32\notepad.exe")msgbox PID//关闭进程,参数为进程PID,成功返回1,失败返回0。(注意,如进程不存在,也会返回0)Plugin A=lxj_Plug.lxj_KillTask(PID)msgbox AReturn 测试运行程序/关闭进程Sub 测试获取进程路径//下面演示通过进程名获取程序所在路径progress="QQ.exe"// 命令中参数为可选参数,不填则获取当前调用程序的路径//返回值为进程路径,进程不存在返回空字符串""Plugin path=lxj_Plug.lxj_pathfile()MessageBox "当前程序所在的文件夹为"&pathPlugin path=lxj_Plug.lxj_pathfile(progress)If path<>""MessageBox "进程"&progress&"所在的文件夹为"&pathElse MessageBox "进程"&progress&"不存在"EndIf Return 测试获取进程路径Sub 测试获取指定进程句柄的内存占用量//本命令用来获取指定进程句柄的内存占用//参数,数值型,可选参数,为指定的进程PID。参数留空时获取系统所有进程所占内存总量Plugin PID=Web.Bind("wqm.exe")Plugin memory=lxj_Plug.lxj_GetMemory(PID)//指定进程句柄时返回值为数值型,表示其内存占用量,单位为KBmsgbox "wqm所占内存为:"&memory&"KB"//不指定进程句柄时返回值为字符串型Plugin memory=lxj_Plug.lxj_GetMemory()msgbox "系统所有进程共占内存为:"&memoryReturn 测试获取指定进程句柄的内存占用量Sub 测试限制鼠标MessageBox "下面将限制你的鼠标在屏幕中间某区域内。"Plugin lxj_Plug.lxj_LimitMouse(0,400,400,500,500)MessageBox "试着动动鼠标看看。能点到我不?直接按下回车以便关闭本窗口下一项演示。"Plugin lxj_Plug.lxj_LimitMouse(0,600,550)MessageBox "现在鼠标动不了了吧?直接按下回车以便关闭本窗口恢复控制。"Plugin lxj_Plug.lxj_LimitMouse(1)MessageBox "演示结束"Return 测试限制鼠标Sub 测试电脑语音命令//加载语音库Plugin lxj_Plug.lxj_LoadVoice()//初始加载后默认声音类型为 英文 Sam 男音str="Welcome to China"//设置语速Plugin lxj_Plug.lxj_VoiceRate(2)//设置音量Plugin lxj_Plug.lxj_VoiceVolume(80)Plugin lxj_Plug.lxj_SpeakVoice(str)//字符串转音频,音频格式必须为.wavPlugin lxj_Plug.lxj_Txt2Wav(str,"f:\备份\桌面\a.wav")

//设置声音类型,默认为0(英文 Sam 男音),1(英文 Mike 男音),2(英文 Mary 女音),3(中文 男音)//系统仅自带0(英文 Sam 男音),如果想读1,2的语音,必须下载安装“SpeechSDK51.exe”///download/speechSDK/SDK/5.1/WXP/EN-US/SpeechSDK51.exe//如果想读3的语音,还必须下载安装“SpeechSDK51LangPack.exe”///download/speechSDK/SDK/5.1/WXP/EN-US/SpeechSDK51LangPack.exePlugin lxj_Plug.lxj_SetVoice(3)Plugin lxj_Plug.lxj_SpeakVoice("【lxj1985】懒人插件")Plugin lxj_Plug.lxj_SetVoice(2)Plugin lxj_Plug.lxj_SpeakVoice(str)//使用完后卸载语音库Plugin lxj_Plug.lxj_UnLoadVoice()Return 测试电脑语音命令