Autoint入门指南三.docx
- 文档编号:17486295
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:13
- 大小:481.43KB
Autoint入门指南三.docx
《Autoint入门指南三.docx》由会员分享,可在线阅读,更多相关《Autoint入门指南三.docx(13页珍藏版)》请在冰点文库上搜索。
Autoint入门指南三
Autoint入门指南三---软件的自动安装
示例:
WinZIPv11.1Build7417汉化版的自动安装
这个指南解释说明了怎么安装WinZIPv11.1Build7417汉化版.我们假设您已经能够熟练的创建/运行一个脚本了,也能熟悉的使用AutoIt窗口信息工具(WindowInformationTool)来取得窗口的标题和文本,参见HelloWorld和Notepad指南.
我们将要写的脚本很简单,就是要等待这些对话框出现然后点击适当的按钮即可。
通常安装这类程序会有很多窗口的标题是一样的(WinZip安装),因此我们必须使用窗口文字来判断不同的窗口。
下面提供了每个对话框的截图,您可以点击这些图片来查看它们在窗口信息工具中显示的相应信息。
首先创建一个文件夹,复制WinZip的安装程序(winzip11.exe)到此目录,新建一个名为winzipinstall.au3的脚本文件置于同一个文件夹之下。
现在我们将一步一步来讲解编写脚本自动安装程序的步骤.每个对话框的截图下都会有进行到该步骤的相应脚本代码(别忘了可以点击这些图片来查看它们在窗口信息工具中显示的相应信息).此外您还可以查看我提供的完整的脚本以作参考.
第一行代码非常简单,我们要运行名为winzip11.exe的这个安装程序。
因此此行脚本应该是这样的:
Run("winzip11.exe")
第一个显示的对话框:
由上图可知我们需要按下一步(&N)才能继续安装,那么脚本代码就是下面这样了:
WinWaitActive("安装-WinZip","欢迎使用WinZip安装向导")
Send("!
N")
按下一步后:
WinWaitActive("安装-WinZip","请在继续安装前阅读下列重要信息")
Send("!
N")
按下一步后:
继续下一步:
WinWaitActive("安装-WinZip","选择目标位置")
Send("!
N")
按下一步后(不一定出现):
在这里,如果原先已经安装过WINZIP,就会出现这个对话框.怎么判断是否已经安装过?
当然是检查[文件夹存在]窗口是否存在.看检测代码:
说明:
如果窗口存在就按下回车,如果等待两秒后仍没有发现这个窗口,就继续执行.
ifWinWaitActive("文件夹存在","已经存在",2)=1Then
Send("{enter}")
EndIf
按下一步后:
继续下一步:
WinWaitActive("安装-WinZip","选择目标位置")
Send("!
N")
按下一步后(不一定出现):
在这里,如果原先已经安装过WINZIP,就会出现这个对话框.怎么判断是否已经安装过?
当然是检查[文件夹存在]窗口是否存在.看检测代码:
说明:
如果窗口存在就按下回车,如果等待两秒后仍没有发现这个窗口,就继续执行.
ifWinWaitActive("文件夹存在","已经存在",2)=1Then
Send("{enter}")
EndIf
按下一步后:
继续下一步:
WinWaitActive("安装-WinZip","准备安装")
Send("!
I")
按安装后直到出现:
还有一个窗口也会出现,虽然并没有按完成 按钮:
这时有两个窗口,就不能确定哪一个窗口是在最前的,幸好我们还有另一个利器ControlClick,只要这个窗口得到焦点一次,我们可以不管它是否在鼠标点击时是否还是得到焦点的状态,即使是在最小化的状态同样能够点击.
WinWaitActive("安装-WinZip","WinZip安装向导完成")
ControlClick("安装-WinZip","WinZip安装向导完成",'[text:
完成(&F)]')
好了,现在已经按下了完成按钮,我们对另外的一个存在的窗口进行操作(先用窗口信息工具查看一下):
WinWaitActive("WinZip安装选项","感谢您安装WinZip!
")
ControlClick("WinZip安装选项","感谢您安装WinZip!
","[class:
Button;INSTANCE:
4]")
按下下一步后:
自己打开窗口信息工具确定一下,并熟悉它的使用,对ControlClick函数也去了解一下.
WinWaitActive("许可协议及免责声明","同其他的软件一样")
ControlClick("许可协议及免责声明","同其他的软件一样","[class:
Button;INSTANCE:
1]")
按下是后:
WinWaitActive("WinZip安装选项","WinZip快速入门")
ControlClick("WinZip安装选项","WinZip快速入门","[class:
Button;INSTANCE:
4]")
按下下一步后:
继续下一步:
WinWaitActive("WinZip安装选项",'选择“经典界面”或“向导界面”')
ControlClick("WinZip安装选项",'选择“经典界面”或“向导界面”',"[class:
Button;INSTANCE:
4]")
按下下一步后:
继续下一步:
WinWaitActive("WinZip安装选项","典型设置(推荐)(&E)")
ControlClick("WinZip安装选项","典型设置(推荐)(&E)","[class:
Button;INSTANCE:
4]")
按下下一步后:
还是按下一步按钮:
WinWaitActive("WinZip安装选项","WinZip需要与压缩文档")
ControlClick("WinZip安装选项","WinZip需要与压缩文档","[class:
Button;INSTANCE:
4]")
按下下一步后:
按下完成按钮:
WinWaitActive("WinZip安装选项","感谢您安装此试用版本。
")
ControlClick("WinZip安装选项","感谢您安装此试用版本。
","[class:
Button;INSTANCE:
4]")
按下完成按钮后,安装程序结束,但是自动打开了WINZIP的主程序:
关闭它,懒得用WinClose函数来关,直接用ProcessClose结束进程:
WinWaitActive("WinZip每日提示","您知道吗...")
ProcessClose("WZQKPICK.EXE")
ProcessClose("WINZIP32.EXE")
;如果使用WinClose函数关闭窗口,就是这样:
(因为加了注释符号";"请自行去掉.)
;WinWaitActive("WinZip每日提示","您知道吗...")
;WinClose("WinZip(评估版)")
最后一项:
注册WINZIP.使用注册表写入函数:
(需要先关闭WINZIP,)
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\NicoMakComputing\WinZip\WinIni","Name1","REG_SZ","crsky")
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\NicoMakComputing\WinZip\WinIni","SN1","REG_SZ","CJ21F-LT7K8-KZVHD-RN416-ZCUED-927YQ")
现在您可以查看完整脚本——请注意,我把每个对话框的步骤分开并添加了注释部分,这样比较容易读懂而且方便将来进行修改(下一版本的WinZip大概也是只有轻微改动而已)。
大功告成!
现在运行一下winzipinstaller.au3这个脚本吧,您会看到WinZip将在很短的时间之内被安装好!
在此页使用的技术也可用来实现大多数程序的自动化安装。
下面给各位读者一个小小的练习题吧,请尝试再编写一次这个脚本,但不要使用Send函数(它会向激活窗口发送键击动作),试试用ControlClick函数吧,这会令脚本更加可靠。
在此之前您或许应该熟读关于控件(Controls)的说明。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Autoint 入门 指南