正文开始前的啰嗦

嗯。。最近回前公司兼职,发现忙起来一个一个装软件是非常耗费时间的。于是就写个脚本来完成自动安装。

一、需要的环境

Autoit3 3.3.7.15第一汉化版

传送门在此(请各位猛戳) :http://autoit-cn.googlecode.com/files/AUTOIT_3.3.7.15.1.exe

安装就不多说了,大家都会~

 

二、简单介绍及制作思路

先简单介绍一下AU3

AutoIt(读音aw-tow-it)是一个用于Windows的免费自动化语言。在它的早期发布版本中,这个软件主要旨在为微软Windows程序创建自动化脚本(有时也称为宏)但现在已经成长为包含了编程语言设计和全面功能的增强的软件。

在版本3中,AutoIt的语法结构调整为接近于BASIC系列的语言。它是使用经典数据模型、利用可以存储多种数据类型包括数组的变量类型的第三代编程语言。它兼容于Windows 95,98,ME,NT4,2000,XP,2003,Vista以及Windows 7(在3.3.0版本中终止了对Windows 2000之前操作系统的支持)。

AutoIt自动化脚本可以编译成压缩、单一的可执行文件,这样的文件可以运行在没有安装AutoIt解释器的计算机上。广泛的函数库(称为UDF或“用户定义函数”)包含在程序中或可以从网站中下载,通过他们可以添加许多专用的功能。AutoIt的安装程序中还自带了基于SciTE的IDE。其中集成了编译器和帮助文本,从而为使用AutoIt的开发者提供了事实上的标准环境。

以上来自维基百科,略有修改。

思路

既然是自动安装脚本,实现的功能自然是自动安装啦(MS是一句废话)。

安装过程中需要操作的,最简单的就是点击下一步了,再就是取消一些选项,例如设置XXX为主页啊,运行XXX啊。

那么,脚本需要完成的就是这些点击下一步和取消单选框选中状态。

 

三、实战-通过脚本自动安装极品五笔

下面以使用脚本自动安装极品五笔为例。

文章头部提供的地址是集成了会用到的工具。

首先,脚本的第一步是运行程序。这一步要用到AU3的Run函数。

查询了下函数手册

Run ( "程序" , "工作目录" , 显示标志, 可选标志)

其中,工作目录、显示标志、可选标志为可选选项,可以不添加。

我们将脚本放置在极品五笔安装程序所在目录,这样就不需要添加工作目录这个参数了。

上面的代码用于运行极品五笔的安装程序,运行安装程序,接下来,就要对安装程序的界面进行操作了。

使用窗口信息工具可以帮助分析窗口,这个程序在AutoIT工具箱中有,大家可以自己试用下,很方便的说~很简单的,通俗易懂,是居家旅游的必备工具啊。

1547f42c30e1252f0441f73141d9fb6c

运行安装程序之后,脚本需要知道接下来的操作是对那个窗口进行操作。

这一步使用到两个函数,大家可以根据自己的需要来挑选使用哪一个。

WinWait

暂停脚本的执行直至指定窗口存在(出现)为止.

WinWait ( "窗口标题" , "窗口文本" , 超时时间)

WinWaitActive

暂停脚本的执行直至指定窗口被激活(成为活动状态)为止.

WinWaitActive ( "窗口标题", "窗口文本", 超时时间 )

其中,窗口文本和超时时间为可选选项。

窗口脚本可以更好地帮助脚本确认窗口,超时时间可以让脚本在暂停一段时间之后跳过该函数继续执行。

上面这句就是让脚本程序等待一个标题为

下载吧 - 极品五笔 Win2000/Xp/Windows 7通用型 安装

窗口文本为

欢迎使用 “极品五笔” 安装向导

的窗口,等窗口出现之后,我们就要点击下一步的按钮了。

a68cbf8cc71cd37beb7e9bd619f33e22

在这里,我们需要用到的函数是

ControlClick

向指定控件发送鼠标点击命令.

ControlClick ( "标题", "文本", 控件ID , 按钮 , 点击次数 , X坐标 , Y坐标 )

以上参数中,按钮即为鼠标的左右键,点击次数,X坐标,Y坐标,均为可选参数。

上面语句完成了点击安装这个步骤,认真的童鞋肯定发现了大D在“控件ID”这个参数上没有使用“1”。而是使用了"[CLASS:Button; INSTANCE:2]"这个高级模式的ID,至于为什么这么用,大D将会在后续文章中说到。敬请期待。接下来,安装程序对软件进行安装。随后进入完成安装界面。

0f09b40504404f4e7c51ea0ba2548f9d

使用窗口信息化工具分析安装完成界面,可见设置主页的这个选项是一个按钮,那么,即可以使用ControlClick来完成,也可以使用另外一个函数。

ControlCommand

向指定控件发送命令.

ControlCommand ( "窗口标题", "窗口文本", 控件ID, "命令" , "选项")

其中,最后一个参数——选项为可选参数。基本不用。

这里放出代码

 

上面的代码中,最后一个参数——命令为"uncheck",这个就是用于取消单选框的选择状态。

该函数的命令有

命令, 选项 返回值
"IsVisible", "" 若目标控件可见则返回值为1,否则为0.
"IsEnabled", "" 若目标控件可用(未被禁用)则返回值为1,否则为0.
"ShowDropDown", "" 弹出/下拉 组合框(ComboBox)的列表.
"HideDropDown", "" 收回/隐藏 组合框(ComboBox)的列表.
"AddString", '字符串' 在 ListBox 或 ComboBox 的编辑框后面附加指定字符串.
"DelString", 出现次序 删除在 ListBox 或 ComboBox 的编辑框中指定的字符串(从0开始,0 代表第一个).
"FindString", '字符串' 返回在 ListBox 或 ComboBox 的编辑框中与指定字符串匹配项目的出现次序(从0开始,0 代表第一个).
"SetCurrentSelection", 出现次序 通过指定出现次序(从0开始,0 代表第一个)把 ListBox 或 ComboBox 的当前选择项设为指定的项目.
"SelectString", '字符串' 通过指定字符串把 ListBox 或 ComboBox 的当前选择项设为匹配字符串的项目.
"IsChecked", "" 若目标按钮(复选框/单选框)被选中则返回值为1,否则为0.
"Check", "" 使目标按钮(复选框/单选框)变为选中状态.
"UnCheck", "" 使目标按钮(复选框/单选框)变为非选中状态.
"GetCurrentLine", "" 返回在目标编辑框中插入符(caret,光标)的所在行号.
"GetCurrentCol", "" 返回在目标编辑框中插入符(caret,光标)的所在列号.
"GetCurrentSelection", "" 返回 ListBox 或 ComboBox 控件当前选中的项目名.
"GetLineCount", "" 返回目标编辑框中的总行数.
"GetLine", 行号 返回目标编辑框中指定行的文本内容.
"GetSelected", "" 返回目标编辑框中的(用户用鼠标或其它方式)选定的文本.
"EditPaste", '字符串' 在目标编辑框中插入符(caret)所在位置后插入指定字符串.
"CurrentTab", "" 返回在 SysTabControl32 控件中当前显示的标签编号(从1开始,1代表左边第一个).
"TabRight", "" 使 SysTabControl32 控件切换到(右边的)下一个标签.
"TabLeft", "" 使 SysTabControl32 控件切换到(左边的)下一个标签.
"SendCommandID", 命令 ID 模拟 WM_COMMAND 消息. 通常用于 ToolbarWindow32 控件 - 使用Au3Info的工具栏标签得到命令ID.

点击完成按钮的代码大D就不再敖述了。

点击完成按钮之后,弹出了一个IE浏览器窗口,这个很恼火的说,那就干掉这个窗口,这里要用到AU3中的进程管理函数。

这里大D先说方法:

第一种方法:检测窗口文本,等待指定窗口出现,然后关闭。

第二种方法:检测进程名是否存在,存在则关闭进程。

先列出需要用到的函数。

ProcessExists

检查指定进程是否存在.

ProcessExists ( "进程" )


ProcessClose

终止某个进程.

ProcessClose ( "进程")

以上两个函数,每隔250毫秒对进程进行检测。

两种方法的具体实现代码就不写出来了。

相信大家肯定能写出来。

最后放出大D写的这个安装脚本的源码。

版权声明
转载保留版权: 大D技研室 | 《使用AutoIt3制作自动安装脚本》
本文链接地址:https://www.dadclab.com/archives/1046.jiecao
转载须知:如果您需要转载本文,请将版权信息,版权授权方式,以及本文的链接地址注明,谢谢合作。
本文被贴上了: , , , 标签