本帖最后由 骗子 于 2011-9-15 12:44 编辑
自己抄袭修改的一个网络升级程序,在客户端的程序中开头加入run 或者runwait
#NoTrayIcon
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_Icon=F:\My DBank\autoit3\2012 8.9\汽车工厂\登陆辅助\up.ico
#AutoIt3Wrapper_OutFile=更新程序.exe
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Res_Comment=辅助更新程序,更换图标
#AutoIt3Wrapper_Res_Description=不想使用自动更新功能可将此程序删除
#AutoIt3Wrapper_Res_LegalCopyright=medoclub.taobao.com
#AutoIt3Wrapper_Run_Tidy=y
#AutoIt3Wrapper_Run_Obfuscator=y
#Obfuscator_Parameters=/striponly /cv 1
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#Region AutoIt3Wrapper 预编译参数(常用参数)
;~ #AutoIt3Wrapper_Res_FileVersion=0.9.0.6
;~ #AutoIt3Wrapper_Res_FileVersion_AutoIncrement=n
#EndRegion AutoIt3Wrapper 预编译参数(常用参数)
;;;;;这部分是判断升级的,可以用各种方法想办法去服务器上获取内容,我抄袭的是用获取HTTP服务器上的文件大小来判断是否升级的
Local $size1 = InetGetSize("http://gamewfj.qiongz.com/更新说明.txt")
Local $size2 = FileGetSize("更新说明.txt") ;本机当前目录文件大小
If $size1 = 0 Then Exit
If $size1 > $size2 Then ;对比两个文件的大小,不一样就显示升级确认框
If MsgBox(68, "检测到新版本", "是否升级") = 6 Then _shengji()
EndIf
Func _shengji()
Local $hDownload = InetGet("http://gamewfj.qiongz.com/小号登陆辅助V0.9.exe", @TempDir & "\" & @MDAY & @HOUR & "temp.exe", 1, 1) ;下载客户端程序
Local $hDownload1 = InetGet("http://gamewfj.qiongz.com/更新说明.txt", @TempDir & "\" & @MDAY & @HOUR & "更新说明.txt", 1, 1) ;下载更新说明,这个一方面是说明,另一方面是否升级判断文件大小的一个依据
Do
Sleep(250)
Until InetGetInfo($hDownload, 2) And InetGetInfo($hDownload1, 2) ; 检查下载是否完成.
Local $nBytes = InetGetInfo($hDownload, 0)
InetClose($hDownload) ; 关闭句柄,释放资源.
InetClose($hDownload1) ; 关闭句柄,释放资源.
If MsgBox(68, "下载完毕", "是否立即升级") = 6 Then
WinClose("防止重复运行iopqauto.exe") ;关闭客户端,这个是通过标题关的,应该有更好的方法
Sleep(1000)
FileMove(@TempDir & "\" & @MDAY & @HOUR & "更新说明.txt", @ScriptDir & "\更新说明.txt", 9) ;将下载下来的文件复制到升级程序的目录下,实现升级
FileMove(@TempDir & "\" & @MDAY & @HOUR & "temp.exe", @ScriptDir & "\小号登陆辅助V0.9.exe", 9)
MsgBox(4096, "升级完毕", "开始享受吧", 5)
Run("小号登陆辅助V0.9.exe") ;运行客户端程序
EndIf
EndFunc ;==>_shengji
|