更新原理:
实现金山毒霸6在局域网中的批量自动升级
http://www.yesky.com/265/1903765.shtml
下载地址:https://files.cnblogs.com/weiqi/dubaLanUpdate.zip
更新了,ini配置文件的版本(文章就没做更新了,代码注释写得很完整),下载地址:https://files.cnblogs.com/weiqi/dubaLanUpdateCfgVer.zip
vbs执行效果图(执行vbs后,后面的窗体等操作都是全自动哦,是vbs调用autoitv3的activex控件):
源码如下:使用了vbs调用autoitv3的ActiveX组件(在这里是autoV3x.dll)
'金山毒霸使用局域网升级方案
'作者:前尘光明 ywq111 2011-02-08 只在xp sp3上测试过
'说明:
'1.这个脚本需要用到AutoItX3的dll,先在客户机上将这个dll注册(程序中已经实现,dll要和本vbs在同一目录)。
'2.先将服务器上"C:\Program Files\Common Files\Kingsoft\kiscommon\update"目录共享为update,guest也有访问权限,如这里是\\netadmin\update
'3.设置这个vbs中的毒霸病毒库的共享路径:netpath="\\netadmin\update"
'4.设置这个vbs中添加“计划任务”需要的密码(客户机上当前用户的密码) pwd="sunwood{enter}"
'5.执行该vbs
'6.这个vbs已经将毒霸的升级添加到系统计划任务,所以执行一次之后,以后操作系统就通过计划任务自动更新
'参数列表:
netpath="\\netadmin\update"
pwd="sunwood{enter}" '设置计划任务时需要密码,其中{enter}键为回车操作
dim oAutoit,oShell,objShell
Set oShell = WScript.CreateObject("WScript.Shell")
'先注册autoitV3X的DLL文件,这里提供的是使用upx压缩的,名字为autoV3x.dll(只适应与32位系统)
oShell.Run "regsvr32 /s autoV3x.dll"
WScript.Sleep 100
set oAutoit = WScript.CreateObject("AutoItX3.Control")
'将netpath目录加载为X盘(先需要设置好服务器共享目录的guest访问权限)
oShell.Run "net use X: " + netpath + " /persistent:yes"
'修改盘符X的显示名称为X(如果不设置这个,后面的send "{X}"就不能定位到X盘了;
'还有个要求,要求客户机上的盘没有以X开头的,否则请修改这里的X为其他名字,比如y,那么后面的同步改成send "{Y}" )
Set objShell = CreateObject("Shell.Application")
objShell.NameSpace("X:").Self.Name = "X"
Set objShell=Nothing
'设置mouseClick的点击为相对点击
oAutoit.AutoItSetOption "MouseCoordMode",2
oShell.Run """C:\Program Files\Common Files\Kingsoft\kiscommon\kislive.exe""", 1, False
'等待金山升级窗体(使用AutoIt Window Info检测的)
oAutoit.WinWaitActive "[class:ATL:0044D940]"
oAutoit.MouseClick "left",368, 226,2
oAutoit.Sleep 500
'控件客户坐标加上控件ControlClick Coords(控件相对坐标)坐标
oAutoit.MouseClick "left",26+10, 168+90,1
oAutoit.Sleep 500
oAutoit.MouseClick "left",429+10, 111+90,1
oAutoit.Sleep 500
'在我的电脑按向右的键
oAutoit.Send "{Right}"
oAutoit.Sleep 100
'在驱动盘列表中,按X键,定位到名为X的盘
oAutoit.Send "{X}"
oAutoit.Sleep 200
'确定选择(金山升级的对话框的确定键)
oAutoit.WinActive "[class:ATL:0044D940]"
oAutoit.Send "{Enter}"
oAutoit.Sleep 200
oAutoit.MouseClick "Left",405,306,2
'毒霸第一次从局域网升级的时间,不知道两分钟够不够用,各位根据自己情况设置
oAutoit.Sleep 2000
oAutoit.WinActive "[class:ATL:0044D940]"
oAutoit.MouseClick "Left",405,306,2
ref1="schtasks /create /tn ""jinshan1"" /tr ""\""C:\Program Files\Common Files\Kingsoft\kiscommon\kislive.exe\"" /continue"" /sc daily /st 15:00:00 "
oShell.Run ref1 '添加金山毒霸更新到系统任务计划,需要输入密码
oAutoit.WinActive "[class:ConsoleWindowClass]" '这个是操作系统命令行窗体
oAutoit.WinWaitActive "[class:ConsoleWindowClass]"
oAutoit.Send pwd
oAutoit.Sleep 100
Set oAutoit=Nothing
Set oShell=Nothing