自动安装脚本生成器AutoIt3《AU3 脚本实现软件自动安装》用AU3 脚本来安装软件?嗯,对的。
大家或许见过某些高人做的软件自动安装器,这些安装器在安装软件时会神奇的自动点击软件安装过程的每一步,自动化程度很高。
但是不要感觉这东西太神秘了,只需要十几分钟,我们自己也可以写出这种“神奇”的软件自动安装脚本。
在说用AU3 脚本来实现软件的自动安装前,我们要先再看几个AU3 函数。
1>WinWaitActive作用:暂停脚本的执行直至指定窗口被激活(成为可活动状态)为止语法:WinWaitActive ( "窗口标题", ["窗口文本"], [超时时间] )2> WinClose作用:关闭指定窗口语法:WinClose ( "窗口标题" [, "窗口文本"] )3>Send59作用:向激活窗口发送模拟键击操作语法: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 <ACN_String.au3>做好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 <ACN_String.au3>Dim $PathIf Not(FileExists(@ScriptDir & "\Storm.exe")) ThenMsgBox(0+16,"错误","暴风影音安装文件Storm.exe 未发现!")ElseIf FileExists(@ScriptDir & "\InstallPath.ini") Then$Path=IniRead(@ScriptDir & "\InstallPath.ini","InstallPath","Path","")Else$Path=""EndIfRun(@ScriptDir & "\Storm.exe")WinWaitActive("暴风影音V3","欢迎使用")Send("!N")WinWaitActive("暴风影音V3","用户许可协议")Send("!I")WinWaitActive("暴风影音V3","选择安装位置")If $Path<>"" ThenSendX($Path,0)Sleep(300)EndIfSend("!I")WinWaitActive("暴风影音V3","正在完成")Send("{Space}")Send("!F")EndIf这个脚本中添加了一些内容,我简单的说一下。
$Path,这个变量用来记录软件安装路径,这个变量的值由一个外部配置文件InstallPath.ini 读取,InstallPath.ini 的InstallPath 段Path 键记录着软件的安装路径。
这样我们可以在不更改代码的情况下变更软件的安装路径。
这个配置文件的内容如下:[InstallPath]Path = D:\Softwares当这个配置文件不存在,或者配置文件里Path 的值为空,那么软件则按照默认路径进行安装。
大家是否看明白了呢?不太懂?不用着急,我同样建议初学者不要使用复杂的代码,代码越简单越好,能实现功能就可以。
随着缩写程序的增多,基础的增强,渐渐的就不再怕复杂的代码了。
AU3 脚本实现自动安装的方法就讲到这里。
AU3 脚本实现软件的自动安装有诸多优点,特别是可自定义性极强,可以根据个人需64要定制安装路径、安装模式等等,但是不可回避的,AU3 脚本实现软件的自动安装也有一定的缺点,不稳定便是一个。
由于AU3 脚本是通过等待窗口的激活并发送键盘或鼠标事件来实行自动安装的,如果在脚本执行过程中有键盘动作或者有鼠标动作都会影响安装过程。
所以,如果使用AU3 脚本来控制软件的自动安装,一定要加一个提示,即“请勿在软件自动安装过程中使用键盘或鼠标”。
不管怎么说,使用AU3 脚本来实现软件自动安装是时下比较流行的一种方法。
写自动安装脚本时一定要多尝试、多变通,不要模仿,要在理解了以后自己动脑动手。
希望这一小节能给大家带来便利。
现在可以大吼一声:让高手们的“神奇的”软件自动安装见鬼去吧,现在我们都可以亲手写软件的自动安装脚本!《i-Autoit 编写AU3软件自动安装脚本的利器》 i-Autoit这个软件,网上一搜一大把,对于初学AU3的人,实在是得力的助手。
先看界面:如何使用它编写出我们想要的执行软件自动安装的脚本呢?其实不难。
我的体会是主要运用好3个命令按键:win【作用是激活窗口,每当安装界面变换都要重新激活新的窗口】click【作用是选中或选空目标控件,包括“下一步”、“我接受”、取消或打上对钩】sendx【作用是发送文字信息,英文中文均可,主要是修改安装路径时使用】有一点强调一下,如果遇到安装软件默认打着对钩的,这个安装选项也是你想要的,就不要用click按键发出选中的命令了,那会出错的。
这里还需要用到另外一个软件,是i-Autoit 附带的,看一下界面:我介绍的3个命令中所涉及到的所有窗口标题、文本、控件信息,都要靠它获取,方法是用鼠标中键(就是那个滑轮)对准正在安装的软件的界面上的某个地方按一下,就能在i-Autoit 的“窗口标题”、“可见文本”、“控件信息”处看到你想要获取的信息了,这是自动获取的,不用填写,若看不到,点一下下拉箭头就可以选择了。