陈刚 何军
摘要:社会信息化的发展越来越迅速,从大学到小学的信息教育的普及,大学中很多机房需要安装相关学习软件,如果对机房电脑逐台安装,耗时耗力。该文提出应用AutoIt能自动完成相关重复性操作,如自动打开网页,自动安装程序、批量修改系统设置等,相对于完全人工操作具有容错率低、节约时间等优点。
关键词:AutoIt;自动安装;容错率低
中图分类号:TP318 文献标识码:A 文章编号:1009-3044(2018)12-0233-02
国家“十三五规划”中指出:“统筹网络安全和信息化发展,完善国家网络安全保障体系,强化重要信息系统和数据资源保护,提高网络治理能力,保障國家信息安全。”我院机房的基本情况为,电脑数量共2500多台,分布在“市场营销实训室”、“会计技能实训室”、“计算机基础实训室”、“软件测试实训室”等共50多个实训室中,在平时的管理中,若全部由人工来进行系统和软件的安装,这种重复性的劳动会大大降低机房管理人员的效率。安装中的重复性劳动,我们可以通过使用AutoIT软件来提高效率。AutoIT软件的优点在于被设计得尽可能小,并且不用依赖外部DLL文件或添加注册表项目即可独立运行,也可以安全地成为服务运行.脚本可以使用Aut2Exe编译为可独立运行的文件。该文重点论述如何让制作自动化脚本的方法以及自动化安装的实践过程中所需要的重要函数含义。
1 AutoIt软件特性介绍
AutoIt 拥有类 BASIC 语言表达式,意味着使用过其他任意高级语言的用户都能简单的使用。即使是一个新手也能快速入门。其包含了一个自定义的小型版本的 SciTE 编辑器,它能使您编辑脚本更加方便。是一个非常小并且独立的应用程序,完全不依赖像 .net 或者 vb 使用的厚重的运行库。所有您需要运行的脚本都能使用主程序执行(AutoIt3.exe),并且脚本可以使用脚本编译器Aut2Exe进行编码后内置于独立的可执行文件。完全支持 Unicode 和 x64 构架的程序,可以模拟键盘和鼠标的操作,可以对窗口移动、隐藏、显示、修改大小、激活、关闭、等操作。对窗口本身的操作可以是关于标题、文本、大小、坐标、类、和内部 Win32 API 句柄。直接获取编辑框、复选框、列表框、选择框、按钮、状态栏上的信息,并且作用于这些控件而不必担心键击动作落空,甚至还可以作用于非活动窗口上的控件。
2 AutoIt软件在机房应用的原因
由于机房电脑的更新换代比较快、每学期开学期间需要为电脑重新安装、升级软件。所管辖的实验室电脑数量逐年增多,导致管理人员的工作量不断增加。现在一台典型的机房电脑所需要安装的软件有SQL2008数据库、office2010、Winrar、QQ输入法、五笔输入法、杀毒软件、360安全卫士、影音播放器、Foxit Reader等十余种软件,还有一些特殊软件需要安装比如极域电子教室、Dreamweaver、SPSS等。若采用人工安装的方法,管理人员必须一直守在电脑旁边,一步一步地操作。若采用全自动安装的方式,就无须管理人员全程参与,将节约大量的时间和精力,同时减轻工作的强度。实现自动化的步骤一般为:①分析人工安装步骤;②记录相关键盘或者鼠标的操作;③对应每个步骤实现Autoit命令的编写和调试;④通过软件生成exe可执行文件,完全可以脱离安装环境独立运行。
3 Autoit自动安装软件的实施方案
3.1 软件的单机安装
以在win10X64系统中安装SQL2008数据库为例,首先我们来分析人工安装过程中的相关步骤;
1)双击安装包文件夹中的setup.exe应用程序;
2)在SQL Server安装中心中点击“安装”按钮,并选择“全新安装或向现有安装添加功能”选项;
3)点击“SQL Server 2008 R2 安装程序”界面中的确定选项;
4)等待输入产品密钥界面,并输入密钥;
5)接受相关许可条例并点击“确定”和下一个界面的“安装”;
6)等待跳转到“安装程序支持规则”并点击下一步;
7)功能选择中,我们点击“全选”按钮,并点击下一步;
8)一直点击下一步,直到出现“服务器配置选项”中,我们选择“对所有SQL Server服务使用相同的账户”按钮并在弹出的对话框中选择“NT AUTHORITY\SYSTEM”选项,点击确定;
9)如若出现“添加当前用户”按钮请一一点击;
10)直到出现“安装”按钮,点击并等待安装进程结束(不同型号的机器安装时间大不相同);
11)点击“完成”后,打开一次“SQL Server Management Studio”并让其初始化一次。
3.2 编写软件自动安装程序
根据之前分析的单机安装的步骤来编写脚本,我们需要使用软件自带的AutoIt V3 Window Info工具来精确的获取窗口标题信息和鼠标点击位置信息,并使用AutoIt 脚本编辑器来编写,由于篇幅限制不能将所有程序写出,先将该文中所使用的典型函数列出:
1) ShellExecute是使用 ShellExecute API 执行一个外部程序。语法格式为:ShellExecute (“文件名”[,“工作目录” [,“定义操作方式”[,定义显示方式]]] )。文件名指外部程序所在的完整路径(文件格式支持MSI、EXE、TXT、LNK);工作目录 [可选参数] 是指程序安装包的绝对地址目录;定义操作方式 [可选参数]是指“打开”、“编辑”、“打印”、“显示属性”;定义显示方式 [可选参数]是指启动的程序窗口为何种状态:“@SW_HIDE”为隐藏程序窗口;“@SW_MINIMIZE”为最小化程序窗口;“@SW_MAXIMIZE”为最大化程序窗口。因为MSI格式文件只能由ShellExecute运行,所以本程序中不适用Run函数操作。
2) WinWaitActive是指暂停当前正在运行脚本的执行直到指定窗口被激活才继续运行。语法格式为:WinWaitActive (“指定窗口标题”[,“指定窗口文本”[, 延时时间]] )。指定窗口标题为要确认的窗口的标题名称;指定窗口文本[可选参数]为要确认的窗口包含的显示文本;延时时间 [可选参数]以秒为单位。
3) WinActive检查指定的窗口是否存在且当前被激活(和WinWaitActive为配对出现的函数)。语法格式为:WinActive (“指定窗口标题”[,“指定窗口文本”] )。指定窗口標题为要确认的窗口的标题名称。指定窗口文本[可选参数] 为要确认的窗口包含的显示文本。
4) ControlSend指向用户指定的控件发送相关字符串。语法格式为:ControlSend (“指定窗口标题”,“指定窗口文本”,控件名称,“定义字符串”[,发送方式] )。指定窗口标题为要确认的窗口的标题名称;指定窗口文本为要确认的窗口包含的显示文本;控件名称为用户指定的目标控件类名和接口名称;定义字符串为要发送到指定控件中指定位置的字符串信息;发送方式[可选参数] 为处理程序发送“字符串”的类型:发送方式= 0(默认),按键序列中含有的特殊字符比如!和{RIGHT}将被视为 ALT和右箭头键;发送方式= 1,按键将按!和{RIGHT}发送。
5) AutoItSetOption指修改 AutoIt 中函数运行的方式。语法格式为:AutoItSetOption (“函数运行方式”[,变量])。选项为要修改的函数选项;变量[可选参数] 需要分配给选项的值,因设置的选项不同而类型与意思不同。由于函数运行方式较多,此文只将本程序中使用的两个选项为例:TrayIconHide,隐藏 AutoIt 托盘图标,0 = 显示托盘图标(默认) 、1 = 隐藏托盘图标。PixelCoordMode,设置用于象素函数的坐标参照,可以是绝对位置也可以是相对当前激活窗口的坐标位置。0 = 相对激活窗口的坐标、1 = 屏幕的绝对位置(默认)、2 = 相对激活窗口客户区的坐标。为简单书写,我们也可以使用 Opt() 来代替 AutoItSetOption()。
6) MouseClick为执行鼠标点击操作。语法格式为:MouseClick ( “定义按钮” [, X坐标值, Y坐标值 [, 鼠标点击次数 [, 鼠标点击速度]]] )。定义按钮的可选参数有左键—“left”, 右键—“right”, 中键—“middle”,主键—“main”, 菜单键—“menu”, 主要按钮—“primary”, 次要按钮—“secondary”;
X,Y坐标值[可选参数]为鼠标要移动到的目标坐标值,若两者都留空则使用当前位置(该文中使用了相对激活窗口的坐标来定位);点击次数[可选参数]要点击鼠标按钮的次数,默认值为1;速度 [可选参数]鼠标移动速度,可设数值范围在1(最快)和100(最慢)之间,若设置速度为0则立即移动鼠标到指定位置。默认速度为10。
3.3 机房批量安装软件
将编写好的软件,通过软件自带的编译生成EXE可执行文件,由于可执行文件只有1M大小,将这个可执行文件拷贝到机房的教师机上,通过电子教师软件将软件安装包和可执行文件一起发送至学生机的非系统盘中批量运行EXE可执行文件,几分钟后,安装完成。此处需要注意的是,由于调试环境和安装环境可能存在不同的变量,我们需要在机房系统保护卡保护的情况下做一次测试,确认无误之后在进行程序安装,这样既保证了成功率,也降低了工作量。
4 结束语
很多软件无论是否需要注册都可以采用上述的函数在AutoIt V3中编写相关安装程序,例如3DS max 2012、Microsoft Office、Adobe PhotoShop等软件,在进行窗口激活时,若未检测到活动窗口也可以使用ProcessExists函数来检查相关进程是否存在。使用AutoIt V3软件简化了机房管理人员的重复性劳动,提高了管理人员的工作效率。
参考文献:
[1] 刘义全, 鲍洪刚, 宋世军. 高校实验室安全管理问题的思考[J]. 实验科学与技术, 2012, 10(1): 173-175.
[2] 徐永冰. Auto It在机房管理中的应用[J]. 现代计算机: 专业版, 2012(7): 61-63.
[3] 汪立生. Oracle数据库的服务器安装[J]. 商情: 科学教育家, 2008(1): 94-97.
[4] 张瑾, 李剑锋. 应用Auto It实现考试系统客户端自动登录[J]. 电子技术与软件工程, 2014(8): 90-91.
[5] 阮灿华, 陈鑫. 批处理在计算机等级考试系统管理中的应用[J]. 长江大学学报: 自然科学版, 2012, 9(12): 117-119.