自动安装脚本生成器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
自动安装脚本生成器AutoIt3
《AU3 脚本实现软件自动安装》
用AU3 脚本来安装软件?嗯,对的。
大家或许见过某些高人做的软件自动安装器,这些安装器在安装软件时会神奇的自动点击软件安装过程的每一步,自动化程度很高。但是不要感觉这东西太神秘了,只需要十几分钟,我们自己也可以写出这种“神奇”的软件自动安装脚本。
在说用AU3 脚本来实现软件的自动安装前,我们要先再看几个AU3 函数。
1>WinWaitActive
作用:暂停脚本的执行直至指定窗口被激活(成为可活动状态)为止
语法:WinWaitActive ( "窗口标题", ["窗口文本"], [超时时间] )
2> WinClose
作用:关闭指定窗口
语法:WinClose ( "窗口标题" [, "窗口文本"] )
3>Send
59
作用:向激活窗口发送模拟键击操作
语法:Send ( "按键" [, 标志] )
参数:
标志= 0 (默认),按键序列中含有的特殊字符比如+ 和! 将被视为SHIFT 和
ALT 键。
标志= 1,按键将按原样发送。
4>SendX
作用:向激活窗口发送中文字符
语法:SendX ( "字符",标志)
参数:
标志,必需,设置为0 或者非1 为剪切板模式,1 为发送ASC 模式
WinWaitActive 和Send 函数是我们的主角,WinWaitActive 用于等待某窗口的出现和激活,Send 用来发送一些键盘事件。有了能做这两件事都函数,我们就能做许多事情了。下面,我以暴风影音的自动安装为例写一个自动安装脚本。
首先,我们需要启动暴风影音的安装程序。将自动安装脚本与暴风影音安装包放置于同层目录下,使用如下代码调用暴风影音安装程序启动,
Run(@ScriptDir & "\Storm.exe")
暴风影音启动后出现如下所示界面,
这时我们就需要使用WinWaitActive 函数了。WinWaitActive 的语法是:WinWaitActive ( "窗口标题", ["窗口文本"], [超时时间] )
“窗口标题”表示窗口标题中的文本,可以写标题中的全部文本,也可以写标题中的部
分文本。如果只写部分,则应当选取比较有代表性的部分,例如上图中的“暴风影音V3”。“窗口文本”是个可选参数,但是强烈建议写上,以更好地识别安装提示窗口。“ 窗口
文本”的内容可以选取当前窗口中比较有代表性的文本,例如上图中的“欢迎使用”。
60
如果担心手工判断“窗口标题”与“窗口文本”会出现错误,建议初学者使用AU3 工
具箱中的“窗口信息工具”。这是个相当好的工具,可以显示所选窗口中的所有相关信息。“超时时间”代表着如果WinWaitActive 的等待时间超过了超时时间,那么就不等待并
继续执行WinWaitActive 后面的语句。
那么,我们使用如下语句等待上图的出现和激活,
WinWaitActive("暴风影音V3","欢迎使用")
这时,我们需要使用键盘的“Alt+N”来单击“下一步”按钮,这样一来我们就必须要
用到Send 函数。使用如下代码来发送“Alt+N”,
Send("!N")
“Alt+N”发送完成后进入下图界面,
同第一个界面一样,我们进行类似的处理:
第一,等待上图窗口的出现与激活;
第二,单击“我接受”按钮。
语句如下:
WinWaitActive("暴风影音V3","用户许可协议")
Send("!I")
在接受了许可协议后,我们进入了下面的窗口:
61
这个窗口中有一个让我们填写软件安装路径的文本框,如果我们需要重新填写,那么我
们就必须要用到SendX 函数了。SendX 最大的一个好处就是支持中文,这就意味着我们可
以填写中文路径了(方便起见,我还是使用英文路径给大家展示)。使用SendX 的有一点要
注意,就是使用SendX 函数时必须在代码的最开始处添加:
#include
做好SendX 的前提工作后,我们就可以修改我们需要的安装路径了。
WinWaitActive("暴风影音V3","选择安装位置")
SendX("D:\Softwares",0)
Send("!I")
当我们发送完“Alt+I”之后也就是按下“安装”按钮后,安装过程将开始执行,如下
图,
62
安装过程结束后,会自动弹出下图的提示框,
由于此时默认的选中位置在上图中的“运行暴风影音”处,所以如果我们想去掉这个
复选框的对号,只需要按下空格键就可以了。代码如下:
WinWaitActive("暴风影音V3","正在完成")
Send("{Space}")
“{Space}”代表着空格键,类似的还有“{TAB}”代表TAB 键,“ {ENTER}”代表主
键盘区的回车键,{UP} 向上箭头,{DOWN} 向下箭头,{LEFT} 向左箭头,{RIGHT} 向右箭头等等,如果想了解更多请参与AU3 帮助文档中关于Send 命令的部分。
63
随后我们发送“Alt+F”来完成安装。
Send("!F")
到这里,我们就写完了关于暴风影音安装的AU3 脚本。这只是个范例脚本,只用于给
大家讲解关于WinWaitActive 函数、Send 函数、SendX 函数等的应用,请勿生搬硬套,要学
会灵活使用,根据不同的情况写出相应的脚本。
总结一下暴风影音的自动安装脚本,再加上一些额外的功能,代码如下:
#include
Dim $Path
If Not(FileExists(@ScriptDir & "\Storm.exe")) Then
MsgBox(0+16,"错误","暴风影音安装文件Storm.exe 未发现!")
Else
If FileExists(@ScriptDir & "\InstallPath.ini") Then
$Path=IniRead(@ScriptDir & "\InstallPath.ini","InstallPath","Path","")
Else
$Path=""
EndIf
Run(@ScriptDir & "\Storm.exe")
WinWaitActive("暴风影音V3","欢迎使用")
Send("!N")
WinWaitActive("暴风影音V3","用户许可协议")
Send("!I")
WinWaitActive("暴风影音V3","选择安装位置")
If $Path<>"" Then
SendX($Path,0)
Sleep(300)
EndIf
Send("!I")
WinWaitActive("暴风影音V3","正在完成")
Send("{Space}")
Send("!F")
EndIf
这个脚本中添加了一些内容,我简单的说一下。
$Path,这个变量用来记录软件安装路径,这个变量的值由一个外部配置文件InstallPath.ini 读取,InstallPath.ini 的InstallPath 段Path 键记录着软件的安装路径。这样我们
可以在不更改代码的情况下变更软件的安装路径。这个配置文件的内容如下:[InstallPath]
Path = D:\Softwares
当这个配置文件不存在,或者配置文件里Path 的值为空,那么软件则按照默认路径进