自动安装脚本生成器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 的值为空,那么软件则按照默认路径进

相关文档
最新文档