注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

月伴流星的博客

 
 
 

日志

 
 

Autoint入门指南三---软件的自动安装  

2009-11-08 18:53:50|  分类: AU3_程序语言 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

示例 :WinZIP v11.1 Build 7417 汉化版的自动安装

这个指南解释说明了怎么安装 WinZIP v11.1 Build 7417 汉化版 . 我们假设您已经能够熟练的创建/运行一个脚本了,也能熟悉的使用 AutoIt 窗口信息工具(Window Information Tool ) 来取得窗口的标题和文本, 参见 HelloWorldNotepad 指南.

我们将要写的脚本很简单,就是要等待这些对话框出现然后点击适当的按钮即可。通常安装这类程序会有很多窗口的标题是一样的(WinZip 安装),因此我们必须使用窗口文字来判断不同的窗口。下面提供了每个对话框的截图,您可以点击这些图片来查看它们在 窗口信息工具 中显示的相应信息。

首先创建一个文件夹,复制WinZip的安装程序(winzip11.exe)到此目录,新建一个名为 winzipinstall.au3 的脚本文件置于同一个文件夹之下。

  Autoint入门指南三---软件的自动安装 - 月伴流星 - 月伴流星的博客

现在我们将一步一步来讲解编写脚本自动安装程序的步骤.每个对话框的截图下都会有进行到该步骤的相应脚本代码(别忘了可以点击这些图片来查看它们在 窗口信息工具 中显示的相应信息).此外您还可以查看我提供的 完整的脚本 以作参考.

第一行代码非常简单,我们要运行名为 winzip11.exe 的这个安装程序。因此此行脚本应该是这样的:

Run("winzip11.exe")

第一个显示的对话框:

  Autoint入门指南三---软件的自动安装 - 月伴流星 - 月伴流星的博客

由上图可知我们需要按 下一步(&N) 才能继续安装,那么脚本代码就是下面这样了:

WinWaitActive("安装 - WinZip","欢迎使用 WinZip 安装向导")
Send("!N")

按下一步后:

  Autoint入门指南三---软件的自动安装 - 月伴流星 - 月伴流星的博客

WinWaitActive("安装 - WinZip","请在继续安装前阅读下列重要信息")
Send("!N")

按下一步后:

  Autoint入门指南三---软件的自动安装 - 月伴流星 - 月伴流星的博客


继续下一步:

WinWaitActive("安装 - WinZip","选择目标位置")
Send("!N")

按下一步后(不一定出现):

  Autoint入门指南三---软件的自动安装 - 月伴流星 - 月伴流星的博客

在这里,如果原先已经安装过WINZIP,就会出现这个对话框.怎么判断是否已经安装过?当然是检查[文件夹存在]窗口是否存在.看检测代码:

说明:如果窗口存在就按下回车,如果等待两秒后仍没有发现这个窗口,就继续执行.

if WinWaitActive("文件夹存在","已经存在",2) = 1 Then
Send("{enter}")
EndIf

按下一步后:

  Autoint入门指南三---软件的自动安装 - 月伴流星 - 月伴流星的博客

继续下一步:

WinWaitActive("安装 - WinZip","准备安装")
Send("!I")

按安装后直到出现:

  Autoint入门指南三---软件的自动安装 - 月伴流星 - 月伴流星的博客

还有一个窗口也会出现,虽然并没有按 完成   按钮:

  Autoint入门指南三---软件的自动安装 - 月伴流星 - 月伴流星的博客

这时有两个窗口,就不能确定哪一个窗口是在最前的,幸好我们还有另一个利器 ControlClick ,只要这个窗口得到焦点一次,我们可以不管它是否在鼠标点击时是否还是得到焦点的状态,即使是在最小化的状态同样能够点击.

WinWaitActive("安装 - WinZip","WinZip 安装向导完成")
ControlClick("安装 - WinZip","WinZip 安装向导完成",'[text:完成(&F)]')

好了,现在已经按下了完成按钮,我们对另外的一个存在的窗口进行操作(先用窗口信息工具查看一下):

  Autoint入门指南三---软件的自动安装 - 月伴流星 - 月伴流星的博客

WinWaitActive("WinZip 安装选项","感谢您安装 WinZip!")
ControlClick("WinZip 安装选项","感谢您安装 WinZip!","[class:Button;INSTANCE:4]")

按下下一步后:

  Autoint入门指南三---软件的自动安装 - 月伴流星 - 月伴流星的博客

自己打开窗口信息工具确定一下,并熟悉它的使用,对 ControlClick 函数也去了解一下.

WinWaitActive("许可协议及免责声明","同其他的软件一样")
ControlClick("许可协议及免责声明","同其他的软件一样","[class:Button;INSTANCE:1]")

按下 是 后:

  Autoint入门指南三---软件的自动安装 - 月伴流星 - 月伴流星的博客
.

WinWaitActive("WinZip 安装选项","WinZip 快速入门")
ControlClick("WinZip 安装选项","WinZip 快速入门","[class:Button;INSTANCE:4]")

按下 下一步 后:

  Autoint入门指南三---软件的自动安装 - 月伴流星 - 月伴流星的博客

继续下一步:

WinWaitActive("WinZip 安装选项",'选择“经典界面”或“向导界面”')
ControlClick("WinZip 安装选项",'选择“经典界面”或“向导界面”',"[class:Button;INSTANCE:4]")

按下 下一步 后:

  Autoint入门指南三---软件的自动安装 - 月伴流星 - 月伴流星的博客

继续下一步:

WinWaitActive("WinZip 安装选项","典型设置(推荐)(&E)")
ControlClick("WinZip 安装选项","典型设置(推荐)(&E)","[class:Button;INSTANCE:4]")

按下 下一步 后:

  Autoint入门指南三---软件的自动安装 - 月伴流星 - 月伴流星的博客

还是按 下一步 按钮:

WinWaitActive("WinZip 安装选项","WinZip 需要与压缩文档")
ControlClick("WinZip 安装选项","WinZip 需要与压缩文档","[class:Button;INSTANCE:4]")

按下 下一步 后:

  Autoint入门指南三---软件的自动安装 - 月伴流星 - 月伴流星的博客

按下 完成 按钮:

WinWaitActive("WinZip 安装选项","感谢您安装此试用版本。")
ControlClick("WinZip 安装选项","感谢您安装此试用版本。","[class:Button;INSTANCE:4]")

按下 完成 按钮后,安装程序结束,但是自动打开了WINZIP的主程序:

  Autoint入门指南三---软件的自动安装 - 月伴流星 - 月伴流星的博客

关闭它,懒得用 WinClose 函数来关,直接用 ProcessClose 结束进程:

WinWaitActive("WinZip 每日提示","您知道吗...")
ProcessClose("WZQKPICK.EXE")
ProcessClose("WINZIP32.EXE")

;如果使用WinClose 函数关闭窗口,就是这样:(因为加了注释符号 ";" 请自行去掉.)

;WinWaitActive("WinZip 每日提示","您知道吗...")
;WinClose("WinZip (评估版)")

最后一项:注册WINZIP.使用注册表写入函数:(需要先关闭WINZIP,)


RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Nico Mak Computing\WinZip\WinIni","Name1","REG_SZ","crsky")
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Nico Mak Computing\WinZip\WinIni","SN1","REG_SZ","CJ21F-LT7K8-KZVHD-RN416-ZCUED-927YQ")

现在您可以查看 完整脚本 ——请注意,我把每个对话框的步骤分开并添加了注释部分,这样比较容易读懂而且方便将来进行修改(下一版本的WinZip大概也是只有轻微改动而已)。

大功告成!现在运行一下 winzipinstaller.au3 这个脚本吧,您会看到WinZip将在很短的时间之内被安装好!在此页使用的技术也可用来实现大多数程序的自动化安装。

下面给各位读者一个小小的练习题吧,请尝试再编写一次这个脚本,但不要使用 Send 函数(它会向激活窗口发送键击动作),试试用 ControlClick 函数吧,这会令脚本更加可靠。在此之前您或许应该熟读关于 控件(Controls) 的说明。

  评论这张
 
阅读(450)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017