找回密码
 加入
搜索
查看: 4714|回复: 11

[AU3基础] 【已解决】关于nod32的自动安装问题

  [复制链接]
发表于 2010-12-13 12:16:27 | 显示全部楼层 |阅读模式
本帖最后由 dhwc 于 2010-12-14 22:07 编辑

nod2.7比较经典,想做一个自动安装的脚本,脚本如下:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MsgBox(4096, "注意!", "程序安装过程中,请不要有任何键鼠操作!", 3)
blockinput (1)
Run("setup.exe")
WinWaitActive("设定向导","欢迎使用NOD32设定程序")
ControlClick("设定向导","欢迎使用NOD32设定程序","[class:Button;ID:12324]")
WinWaitActive("最终用户软件使用协议","我同意")
ControlClick("最终用户软件使用协议","我同意","[class:Button;ID:1011]")
ControlClick("最终用户软件使用协议","我同意","[class:Button;ID:12324]")
WinWaitActive("自动更新设定","以后再设定更新参数")
ControlClick("自动更新设定","以后再设定更新参数","[class:Button;ID:3053]")
ControlClick("自动更新设定","以后再设定更新参数","[class:Button;ID:12324]")
WinWaitActive("ThreatSense.Net","预警系统")
ControlClick("ThreatSense.Net","预警系统","[class:Button;ID:12324]")
WinWaitActive("不受欢迎软件侦测","启动不受欢迎软件侦测")
ControlClick("不受欢迎软件侦测","启动不受欢迎软件侦测","[class:Button;ID:1025]")
ControlClick("不受欢迎软件侦测","启动不受欢迎软件侦测","[class:Button;ID:12324]")
WinWaitActive("文件实时监控AMON","我希望自动加载文件实时监控")
ControlClick("文件实时监控AMON","我希望自动加载文件实时监控","[class:Button;ID:12324]")
if WinWaitActive("网络监视","侦测来自互联网的入侵") then
ControlClick("网络监视","侦测来自互联网的入侵","[class:Button;ID:1000]")
ControlClick("网络监视","侦测来自互联网的入侵","[class:Button;ID:12324]")
EndIf

WinWaitActive("安装参数全部设定完毕","安装参数全部设定完毕")
ControlClick("安装参数全部设定完毕","安装参数全部设定完毕","[class:Button;ID:12324]")
WinWaitActive("安装完成","需要重新启动")
ControlClick("安装完成","需要重新启动","[class:Button;ID:1011]")
ControlClick("安装完成","需要重新启动","[class:Button;ID:12325]")
FileDelete (@StartMenuCommonDir&"\程序\Eset\自述文件.lnk")
FileDelete (@StartMenuCommonDir&"\程序\Eset\卸载.lnk")
FileDelete (@StartMenuCommonDir&"\程序\Eset\帮助.lnk")
exit
++++++++++++++++++++++++++++++++++++++++++++++++++++++++

因为xp和2003环境下nod安装过程有区别(200环境多一个设置网络监视的环节),所以我用了if...then...语句,但是,很奇怪,这样做了之后2003正常了,xp反而不正常了,运行到这一步就停止不前了,请问达人,这代码哪里错了?

恳请指教,谢谢!


新人发帖,如有违规,请斑竹移贴并谅解

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

 楼主| 发表于 2010-12-13 19:49:17 | 显示全部楼层
顶一下等达人
发表于 2010-12-13 20:46:51 | 显示全部楼层
WinWaitActive 的意思是:暂停脚本的执行,直到请求的窗口处于激活状态为止. 在XP系统下,根据不存在你请求的窗口,脚本将永远暂停

建议你将红色部分替换成以下代码:
If @OSVersion = "WIN_2003" Then                ;判断如果系统版本是2003系统则执行以下操作
        WinWait("网络监视","侦测来自互联网的入侵")        ;等待窗口出现
        ControlClick("网络监视","侦测来自互联网的入侵","[class:Button;ID:1000]")
        ControlClick("网络监视","侦测来自互联网的入侵","[class:Button;ID:12324]")
EndIf

评分

参与人数 1金钱 +15 收起 理由
afan + 15

查看全部评分

 楼主| 发表于 2010-12-14 06:43:31 | 显示全部楼层
我想过用系统版本来判断,但是win系统版本太多了,你这样在2000、win7下面还是会有问题的。

既然winwaitactive会因为窗口是否激活出问题,那么换成winwait呢?也还是不行啊?

谢谢你的解答
发表于 2010-12-14 08:27:31 | 显示全部楼层
回复 4# dhwc


    你不是说2003系统下才有那个对话框吗?

    WinWait ( "标题" [, "文本" [, 超时]] ),可以填上超时时间,如果时间过了窗口还没出现则继续,单位:秒
发表于 2010-12-14 08:59:56 | 显示全部楼层
进来学习一下,谢谢!
发表于 2010-12-14 09:10:55 | 显示全部楼层
本帖最后由 都市浪子666 于 2010-12-14 14:48 编辑


MsgBox(4096, "注意!", "程序安装过程中,请不要有任何键鼠操作!", 3)
blockinput (1)
Run("setup.exe") 
WinWaitActive("设定向导","欢迎使用NOD32设定程序")
ControlClick("设定向导","欢迎使用NOD32设定程序","[class:Button;ID:12324]")
WinWaitActive("最终用户软件使用协议","我同意")
ControlClick("最终用户软件使用协议","我同意","[class:Button;ID:1011]")
ControlClick("最终用户软件使用协议","我同意","[class:Button;ID:12324]") 
WinWaitActive("自动更新设定","以后再设定更新参数")
ControlClick("自动更新设定","以后再设定更新参数","[class:Button;ID:3053]")
ControlClick("自动更新设定","以后再设定更新参数","[class:Button;ID:12324]")
WinWaitActive("ThreatSense.Net","预警系统")
ControlClick("ThreatSense.Net","预警系统","[class:Button;ID:12324]")
WinWaitActive("不受欢迎软件侦测","启动不受欢迎软件侦测")
ControlClick("不受欢迎软件侦测","启动不受欢迎软件侦测","[class:Button;ID:1025]")
ControlClick("不受欢迎软件侦测","启动不受欢迎软件侦测","[class:Button;ID:12324]")
WinWaitActive("文件实时监控AMON","我希望自动加载文件实时监控")
ControlClick("文件实时监控AMON","我希望自动加载文件实时监控","[class:Button;ID:12324]")

 ;  一直循环,直到存在("安装参数全部设定完毕","安装参数全部设定完毕") 这个窗口 才跳出循环 
 ;在循环期间如有 ("网络监视","侦测来自互联网的入侵")这个窗口  则执行相应的操作
Do  
    Sleep(10)
   if WinExists("网络监视","侦测来自互联网的入侵") then 
     ControlClick("网络监视","侦测来自互联网的入侵","[class:Button;ID:1000]")
     ControlClick("网络监视","侦测来自互联网的入侵","[class:Button;ID:12324]")
 EndIf
 Until WinExists("安装参数全部设定完毕","安装参数全部设定完毕")   =True


WinWaitActive("安装参数全部设定完毕","安装参数全部设定完毕") 
ControlClick("安装参数全部设定完毕","安装参数全部设定完毕","[class:Button;ID:12324]")
WinWaitActive("安装完成","需要重新启动")
ControlClick("安装完成","需要重新启动","[class:Button;ID:1011]")
ControlClick("安装完成","需要重新启动","[class:Button;ID:12325]")
FileDelete (@StartMenuCommonDir&"\程序\Eset\自述文件.lnk")
FileDelete (@StartMenuCommonDir&"\程序\Eset\卸载.lnk")
FileDelete (@StartMenuCommonDir&"\程序\Eset\帮助.lnk")
exit

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

 楼主| 发表于 2010-12-14 12:28:06 | 显示全部楼层
回复  dhwc


    你不是说2003系统下才有那个对话框吗?

...
yhxhappy 发表于 2010-12-14 08:27

抱歉,是我说的不够完整,我就是不想因操作系统环境的不同造成安装失败,谢谢解答
 楼主| 发表于 2010-12-14 12:30:21 | 显示全部楼层
都市浪子666 发表于 2010-12-14 09:10


谢谢你的解答,回去试验后确认
发表于 2010-12-14 12:45:46 | 显示全部楼层
一会研究一下~~~~
发表于 2010-12-14 13:07:25 | 显示全部楼层
研究的怎样~~~~~~
 楼主| 发表于 2010-12-14 18:23:02 | 显示全部楼层
xp_sp3、2003se、2003ee测试通过!

谢谢都市浪子的解答
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-5 16:21 , Processed in 0.096094 second(s), 29 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表