[已解决]請問如何寫一個自動更新程序
本帖最后由 ipmitool 于 2016-10-4 19:12 编辑放上之前有人po的代碼, 可是無法獲取新版本#include<Inet.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIFiles.au3>
Opt("TrayMenuMode", 1)
dim $oldver,$newver,$sFile1,$aArray1 ,$aArray,$sFile,$Input_Down
$sFile1 = @ScriptDir & "\ver.txt" ;<--你要读的文件
$aArray1 = StringSplit(FileRead($sFile1), @CRLF, 1)
$oldver=$aArray1
;;$oldver= FileGetVersion("我的程序.exe")
Reate_update($oldver)
Func Reate_update($oldver)
if InetGetSize("\\10.32.15.40\temp\Mike\ver.txt")>0 then ;<--判断是否连网或是否服务器能连上
$oldver111=InetGet("\\10.32.15.40\temp\Mike\ver.txt", @ScriptDir & "\ver.txt", 1, 1) ;<--下载版本信息
TraySetState(4)
While InetGetInfo($oldver111)
TrayTip("正在检查新版本", "目前版本为"&$oldver&",正在检查新版本", 1)
WEnd
TraySetState(8)
$sFile = @ScriptDir& "\ver.txt" ;<--你要读的文件
$aArray = StringSplit(FileRead($sFile), @CRLF, 1)
$newver=$aArray
TrayTip("最新版本为"&$newver,"最新版本为"&$newver, 1)
if $newver<>$oldver then
If Not IsDeclared("iMsgBoxAnswer2") Then Local $iMsgBoxAnswer2
$iMsgBoxAnswer2 = MsgBox(1,"提示有最新版本存在","当前版本为"&$oldver&" ,最新版本为"&$newver & @CRLF & "是否自动更新,按确定按钮更新" & @CRLF & "取消按钮不更新")
Select
Case $iMsgBoxAnswer2 = 1 ;OK
Reate_down()
Case $iMsgBoxAnswer2 = 2 ;Cancel
exit
EndSelect
Else
TrayTip("当前版本为最新版本","当前版本为最新版本,暂时不需要更新", 1)
exit
endif
Else
TrayTip("获取版本失败","获取版本失败", 1)
exit
endif
EndFunc
Func Reate_down()
if InetGetSize("\\10.32.15.40\temp\Mike\main.exe")>0 then
InetGet("\\10.32.15.40\temp\Mike\main.exe", @ScriptDir & "\我的程序.exe", 1, 1)
TraySetState(4)
While InetGetInfo()
TrayTip("正在下载最新版本", "正在下载最新版本", 1)
WEnd
TraySetState(8)
TrayTip("获取新版本成功","获取新版本成功", 1)
exit
Else
TrayTip("获取新版本失败","获取新版本失败,启动老版本", 1)
exit
endif
EndFunc InetGet是用来下载网站上的文件(http),不是用来下载共享的
UNC(共享)直接用FileCopy
你要想好整体思路,例如更新的方式是共享方式、FTP或http等等?版本信息获取的方式?下载新版本怎么解决意外情况?等等方面都要考虑好,仅凭别人的代码没用,要有自己的思考。 回复 1# ipmitool
你想表達的意思是 甚麼??
是不知道 這段程式 怎麼使用 與應用呢??
還是會應用 會使用但是 本來好好的現在出問題了?? 不想修改文件的“修改时间”用共享,然后用filecopy 回复 3# kk_lee69
不好意思, 我搞錯txt檔, 所以無法執行, 現在ok了, 感謝! 看一下,学习一下。
页:
[1]