写在前边的话:
AutoIt 是什么?不知道的朋友可以GOOGLE一下,但关于AutoIt,关于有个问题我特别想说一下,(平时没有机会说)很多同学朋友BS我学习她,他们总在建议利用同等的时间学其它................
但他们热心的建议并不妨碍我对AutoIt 的喜爱, 她离我的工作是如此的近,她是多么的容易上手,她是多么的强大.......因此,autoit一直是辅助我工作的不可少的工具之一.
不费话了,因为我也仅只是一直走在AutoIt的路上........
欢迎大家多多拍转,因为只有交流才有进步.谢谢
*********************************************************
要解决的问题:
一个朋友的公司(上班时间员工均无外网)最近全部员人都安装上了360安全卫士,补丁在局域网内升级...但360主程序在没有外网的情况下是不能升级的.....需要朋友经常去360官方下载,然后放在文件服务器上....
天,这种活,干一次两次,还行,要是让你连续一年两年去保持这个程序的更新...想想后果吧.................................
解决方法:
为了解决这个问题: 我们利用autoit很容易搞定:
以下是源程序部分:
#cs ______
脚本作者: boyhong
Email: zhanghong1#ceri.com.cn
Email: zhanghong1#ceri.com.cn
QQ/TM: 184661031
脚本功能: 可靠地自动下载360到指定位置
脚本功能: 可靠地自动下载360到指定位置
#ce ______
$dir = IniRead("updater.ini", "PATH", "Updatepath", "")
;读取配置文件updater.ini中PATH字段Updatepath关键字中的值给$dir
While ($dir = "")
While ($dir = "")
;若$dir的值为空做如下提示并提示你让选择一个路径最终写进updater.ini
MsgBox(0, "Welcome-by boyhong", "如果这是您第一次配置该程序,请选择软件下载后的存放文件夹"&@LF&"以后也可以自行更改updater.ini文件中的路径,或者清空updater.ini文件的内容并重新运行程序来选择文件夹")
$dir = FileSelectFolder("请选择升级文件路径", "", 1)
If ($dir <> "") Then
IniWrite("updater.ini", "PATH", "Updatepath", $dir)
EndIf
WEnd
InetGet("http://down.360safe.com/360compkill.zip", "360compkill.zip", 1, 1)
MsgBox(0, "Welcome-by boyhong", "如果这是您第一次配置该程序,请选择软件下载后的存放文件夹"&@LF&"以后也可以自行更改updater.ini文件中的路径,或者清空updater.ini文件的内容并重新运行程序来选择文件夹")
$dir = FileSelectFolder("请选择升级文件路径", "", 1)
If ($dir <> "") Then
IniWrite("updater.ini", "PATH", "Updatepath", $dir)
EndIf
WEnd
InetGet("http://down.360safe.com/360compkill.zip", "360compkill.zip", 1, 1)
;下载360compkill.zip
While @InetGetActive
TrayTip("第一个任务:正在下载360compkill", "已下载字节数 " & @InetGetBytesRead, 10, 16)
Sleep(500)
WEnd
InetGet("http://down.360safe.com/setup.exe", "setup.exe", 1, 1)
While @InetGetActive
TrayTip("第一个任务:正在下载360compkill", "已下载字节数 " & @InetGetBytesRead, 10, 16)
Sleep(500)
WEnd
InetGet("http://down.360safe.com/setup.exe", "setup.exe", 1, 1)
;下载360安全卫士
While @InetGetActive
TrayTip("第二个任务:正在下载360安全卫士最新正式版", "已下载字节数 " & @InetGetBytesRead, 10, 16)
Sleep(500)
WEnd
InetGet("http://down.360safe.com/offlinepackv4.exe", "offlinepackv4.exe", 1, 1)
While @InetGetActive
TrayTip("第二个任务:正在下载360安全卫士最新正式版", "已下载字节数 " & @InetGetBytesRead, 10, 16)
Sleep(500)
WEnd
InetGet("http://down.360safe.com/offlinepackv4.exe", "offlinepackv4.exe", 1, 1)
;下载360***特征库
While @InetGetActive
TrayTip("第三个任务:正在下载360安全卫士v4.X特征库升级包", "已下载字节数 " & @InetGetBytesRead, 10, 16)
Sleep(500)
WEnd
$sizecompkill = InetGetSize("http://down.360safe.com/360compkill.zip")
$sizecompload = FileGetSize(@ScriptDir&"\360compkill.zip")
TrayTip("第三个任务:正在下载360安全卫士v4.X特征库升级包", "已下载字节数 " & @InetGetBytesRead, 10, 16)
Sleep(500)
WEnd
$sizecompkill = InetGetSize("http://down.360safe.com/360compkill.zip")
$sizecompload = FileGetSize(@ScriptDir&"\360compkill.zip")
;获得远程及本机360compkill.zip的大小
If($sizecompkill = $sizecompload) Then
;判断,若大小一致则拷贝到指定位置,否则删除;
FileCopy( @ScriptDir& "\360compkill.zip", $dir& "\360compkill.zip",1)
Else
FileDelete ( @ScriptDir& "\360compkill.zip" )
EndIf
$size360 = InetGetSize("http://down.360safe.com/setup.exe")
$size360load = FileGetSize(@ScriptDir&"\setup.exe")
FileCopy( @ScriptDir& "\360compkill.zip", $dir& "\360compkill.zip",1)
Else
FileDelete ( @ScriptDir& "\360compkill.zip" )
EndIf
$size360 = InetGetSize("http://down.360safe.com/setup.exe")
$size360load = FileGetSize(@ScriptDir&"\setup.exe")
;同上解释,对刚才下载的三个文件作判断。
If($size360 = $size360load) Then
FileCopy( @ScriptDir& "\setup.exe", $dir& "\setup.exe",1)
Else
FileDelete ( @ScriptDir& "\setup.exe" )
EndIf
$sizeoffline = InetGetSize("http://down.360safe.com/offlinepackv4.exe")
$offlineload = FileGetSize(@ScriptDir&"\offlinepackv4.exe")
If($sizeoffline = $offlineload) Then
FileCopy( @ScriptDir& "\offlinepackv4.exe", $dir& "\offlinepackv4.exe",1)
Else
FileDelete (@ScriptDir& "\offlinepackv4.exe")
EndIf
Exit
If($size360 = $size360load) Then
FileCopy( @ScriptDir& "\setup.exe", $dir& "\setup.exe",1)
Else
FileDelete ( @ScriptDir& "\setup.exe" )
EndIf
$sizeoffline = InetGetSize("http://down.360safe.com/offlinepackv4.exe")
$offlineload = FileGetSize(@ScriptDir&"\offlinepackv4.exe")
If($sizeoffline = $offlineload) Then
FileCopy( @ScriptDir& "\offlinepackv4.exe", $dir& "\offlinepackv4.exe",1)
Else
FileDelete (@ScriptDir& "\offlinepackv4.exe")
EndIf
Exit
将其生成一个比如: 360.exe 然后找台有外网的计算机或者服务器,通过系统的"
任务计划",挂在比如每天中午12:00去执行本程序.是不是很方便?
当然,你可以举一反三,有类似需求的都可以这样实现了..............
附件是:本文我生成的360.exe