使用AutoIt3制作自动安装脚本 - 知乎

正文开始前的啰嗦
嗯。。最近回前公司兼职,发现忙起来一个一个装软件是非常耗费时间的。于是就写个脚本来完成自动安装。
一、需要的环境
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系列的语言。它是使用经典数据模型、利用可以存储多种数据类型包括数组的变量类型的第三代编程语言。它兼容于Windows95,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 ( "程序" , "工作目录" , 显示标志, 可选标志)
其中,工作目录、显示标志、可选标志为可选选项,可以不添加。
我们将脚本放置在极品五笔安装程序所在目录,这样就不需要添加工作目录这个参数了。

1Run("jpwb_7.0.exe")
上面的代码用于运行极品五笔的安装程序,运行安装程序,接下来,就要对安装程序的界面进行操作了。
使用窗口信息工具可以帮助分析窗口,这个程序在AutoIT工具箱中有,大家可以自己试用下,很方便的说~很简单的,通俗易懂,是居家旅游的必备工具啊。

运行安装程序之后,脚本需要知道接下来的操作是对那个窗口进行操作。
这一步使用到两个函数,大家可以根据自己的需要来挑选使用哪一个。
WinWait
暂停脚本的执行直至指定窗口存在(出现)为止.
WinWait ( "窗口标题" , "窗口文本" , 超时时间)
WinWaitActive
暂停脚本的执行直至指定窗口被激活(成为活动状态)为止.
WinWaitActive ( "窗口标题", "窗口文本", 超时时间 )
其中,窗口文本和超时时间为可选选项。
窗口脚本可以更好地帮助脚本确认窗口,超时时间可以让脚本在暂停一段时间之后跳过该函数继续执行。

1WinWait("下载吧 - 极品五笔 Win2000/Xp/Windows 7通用型 安装","欢迎使用 “极品五笔” 安装向导")
上面这句就是让脚本程序等待一个标题为
下载吧 - 极品五笔 Win2000/Xp/Windows 7通用型 安装
窗口文本为
欢迎使用 “极品五笔” 安装向导
的窗口,等窗口出现之后,我们就要点击下一步的按钮了。

在这里,我们需要用到的函数是
ControlClick
向指定控件发送鼠标点击命令.
ControlClick ( "标题", "文本", 控件ID , 按钮 , 点击次数 , X坐标 , Y坐标 )
以上参数中,按钮即为鼠标的左右键,点击次数,X坐标,Y坐标,均为可选参数。

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

使用窗口信息化工具分析安装完成界面,可见设置主页的这个选项是一个按钮,那么,即可以使用ControlClick来完成,也可以使用另外一个函数。
ControlCommand
向指定控件发送命令.
ControlCommand ( "窗口标题", "窗口文本", 控件ID, "命令" , "选项")
其中,最后一个参数——选项为可选参数。基本不用。
这里放出代码

1ControlCommand("下载吧 - 极品五笔 Win2000/Xp/Windows 7通用型 安装","正在完成 “极品五笔” 安装向导",1204,"uncheck")

上面的代码中,最后一个参数——命令为"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写的这个安装脚本的源码。

AUTOIT是一款“自动化”的控制软件,可以模拟键盘按键动作,鼠标移动,鼠标按键和WINDOWS窗口操作等以实现自动化任务,通过编写脚本,由AUTOIT来运行脚本来实现相应的功能,就像在DOS中的批处理和WORD中的“宏”一样,按照事先制定的脚本来实现各种功能,本经验向您展示AUTOIT在自动化软件安装上的操作原理及方法,完整脚本如下,希望对您有所帮助

工具/原料

  • AUTOIT 3.0版本
  • 下载好极点五笔10周年纪念版

方法/步骤

  1. 拷贝极点五笔安装程序(JDWW.EXE)到极点五笔文件夹中,切换到SCITE编辑器,录入如下第一行代码:RUN("JDWW.EXE")

  1. 运行极点五笔安装程序,弹出“极点五笔 十周年纪念版 许可证协议安装对话框,使用窗口信息工具获取此对话框标题信息,复制并粘贴标题信息到代码中,同时按下“ALT+I”组合键,可以进入下个窗口,编辑器中录入如下代码:
    WinWaitActive("极点五笔 十周年纪念版 安装","许可证协议")
    WinActivate("极点五笔 十周年纪念版 安装","许可证协议")
    Send("!I")

  1. 继续极点五笔安装程序,弹出“极点五笔 十周年纪念版 选择安装位置安装对话框,使用窗口信息工具获取此对话框标题信息,复制并粘贴标题信息到代码中,同时按下“ALT+I”组合键,可以进入下个窗口,编辑器中录入如下代码:
    WinWaitActive("极点五笔 十周年纪念版 安装","选择安装位置")
    WinActivate("极点五笔 十周年纪念版 安装","选择安装位置")
    Send("!I")

  1. 继续极点五笔安装程序,弹出“极点五笔 十周年纪念版 外观选择安装对话框,使用窗口信息工具获取此对话框标题信息,复制并粘贴标题信息到代码中,同时按下“ALT+N”组合键,可以进入下个窗口,编辑器中录入如下代码:
    WinWaitActive("极点五笔 十周年纪念版 安装","外观选择")
    WinActivate("极点五笔 十周年纪念版 安装","外观选择")
    Send("!N")

  1. 继续极点五笔安装程序,弹出“极点五笔 十周年纪念版 输入模式选择安装对话框,使用窗口信息工具获取此对话框标题信息,复制并粘贴标题信息到代码中,同时按下“ALT+N”组合键,可以进入下个窗口,编辑器中录入如下代码:
    WinWaitActive("极点五笔 十周年纪念版 安装","输入模式选择")
    WinActivate("极点五笔 十周年纪念版 安装","输入模式选择")
    Send("!N")

  1. 继续极点五笔安装程序,弹出“极点五笔 十周年纪念版 智能标点安装对话框,使用窗口信息工具获取此对话框标题信息,复制并粘贴标题信息到代码中,同时按下“ALT+L”组合键,可以退出安装,编辑器中录入如下代码:
    WinWaitActive("极点五笔 十周年纪念版 安装","智能标点")
    WinActivate("极点五笔 十周年纪念版 安装","智能标点")
    Send("!L")

  1. 安装完成后会跳出“提示”确认窗口,可以在编码器内录入如下代码来按下回车键:
    WinWaitActive("提示","")
    WinActivate("提示","")
    Send("{ENTER}")

  1. 编码录入完毕后,保存并调试脚本文件,并与极点五笔10周年纪念版安装程序存放在同一目录中

  1. 选中“极点五笔10周年安装版自动安装.AU3”文件,按鼠标右键,快捷菜单中选择“编译脚本(带进度条)”,编译完成后生成一个“极点五笔10周年安装版自动安装.EXE”文件,以后双击“极点五笔10周年安装版自动安装.EXE”,就可以实现软件的自动化安装,整个操作过程演示完毕,谢谢大家。


原网址: 访问
创建于: 2023-04-04 16:41:57
目录: default
标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论