你1.0里做了查找更新的功能么?通常比如做一段連到更新服務(wù)器,驗(yàn)證下最新版本信息比如服務(wù)器目錄下放個(gè)記錄版本號(hào)和新版位置的txt,有了就用單寫的更新程序更新(不能更新正在運(yùn)行的自己的關(guān)系)。至于沒做這部分而要讓原來的1.0自己“感應(yīng)”到那是天方夜譚了。

成都創(chuàng)新互聯(lián)公司成立于2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元下陸做網(wǎng)站,已為上家服務(wù),為下陸各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108
自動(dòng)升級(jí)?提供個(gè)思路供你參考。
獨(dú)立編寫升級(jí)模塊,編譯為單獨(dú)文件,并且在主程序中通過事件或方法以調(diào)用外部程序的方式調(diào)用。
可另創(chuàng)二進(jìn)制文件記錄,本機(jī)軟件版本號(hào)及版本日期。升級(jí)模塊內(nèi)有與網(wǎng)絡(luò)文件日期或版本號(hào)比較的代碼。比較結(jié)果發(fā)現(xiàn)已經(jīng)更新提示后由用戶選擇是否更新,更新時(shí)直接覆蓋。當(dāng)然,更人性化的可以讓用戶選擇新功能安裝。
文件位置?一般可以通過注冊表確認(rèn)。開始學(xué)時(shí),可以直接記錄到一個(gè)文件里,更新時(shí)取出來就是了。
具體程序?qū)崿F(xiàn)如下:
在應(yīng)用程序工程MyApp中的部分代碼如下:
Option Explicit
'編譯后的應(yīng)用程序名稱,注意沒有后綴 .EXE,本例為MYAPP
Private Const App_Name = "MyApp"
'最新的應(yīng)用程序存放的路徑,本例為:服務(wù)器 NtServer01 共享目錄 Refresh
Private Const ExePath = "\\NtServer01\Refresh\"
'中介程序名稱,注意沒有后綴 .EXE,本例為 FastCopy
Private Const MidExeName = "FastCopy"
'應(yīng)用程序入口
Private Sub Form_Load()
If UCase(Trim(App.EXEName)) UCase(Trim(App_Name)) Then
MsgBox "必須將訂單管理系統(tǒng)的名稱更改為: " + App_Name
End
End If
'判斷是否有最新版本的應(yīng)用程序,如有則自動(dòng)更新
Call ExeRefresh
'下面為訂單管理系統(tǒng)的正常操作 略 ... ....
End Sub
'版本檢查及更新過程
Private Sub ExeRefresh()
'定義四個(gè)臨時(shí)字符串變量
Dim s1 As String
Dim s2 As String
Dim s3 As String
Dim s4 As String
On Error Resume Next
'將本地應(yīng)用程序MyApp.EXE的全路徑名存入 s1
'將本地中介程序FastCopy.exe的全路徑名存入 s3
s1 = "TNT"
If Len(App.Path) 3 Then
s1 = App.Path + "\" + Trim(App_Name) + ".exe"
s3 = App.Path + "\" + MidExeName + ".EXE"
Else
s1 = App.Path + Trim(App_Name) + ".exe"
s3 = App.Path + MidExeName + ".EXE"
End If
s4 = "TNT"
'將本地應(yīng)用程序MyApp.EXE文件的修改時(shí)間存入 s4
s4 = FileDateTime(s1)
s2 = "TNT"
'將網(wǎng)絡(luò)上應(yīng)用程序MyApp.EXE文件的修改時(shí)間存入 s2
s2 = FileDateTime(ExePath + App_Name + ".EXE")
If s2 = "TNT" Then
MsgBox "沒有找到最新的可執(zhí)行文件:" + ExePath + App_Name + ".EXE" _
+ vbCrLf + vbCrLf + "原因1:存放最新EXE的服務(wù)器或者工作站沒有打開;" _
+ vbCrLf + "原因2:存放最新EXE的路徑錯(cuò)誤或者EXE文件不存在;" _
+ vbCrLf + "請將此情況通知程序員." + vbCrLf + vbCrLf _
+ vbCrLf + "按確定按鈕后,將繼續(xù)運(yùn)行本地EXE文件.", vbCritical, "提示"
End If
If s2 = "TNT" Or s4 = "TNT" Then Exit Sub
'如果網(wǎng)絡(luò)上應(yīng)用程序MyApp.EXE文件的修改時(shí)間,大于本地MyApp.EXE文件的修改時(shí)間
'然后再運(yùn)行本地MyApp.EXE ,中介程序退出后,整個(gè)更新過程結(jié)束.
If CDate(s2) CDate(s4) Then
'將網(wǎng)絡(luò)上的中介程序FastCopy.exe復(fù)制到本地,這樣可防止本地?zé)o中介程序時(shí)無法進(jìn)行更新
FileCopy ExePath + MidExeName + ".EXE", s3
'則運(yùn)行中介程序FastCopy.exe ,將最新的MyApp.EXE 復(fù)制到本地
s1 = Shell(s3 + " " + ExePath + "," + App_Name + ".EXE", vbNormalFocus)
'本地應(yīng)用程序MyApp.EXE 終止運(yùn)行,否則已經(jīng)更新的MyApp.EXE無法覆蓋本地的MyApp.EXE .
End
End If
End Sub
將以上程序編譯為:MyApp.exe 存儲(chǔ)在共享目錄中.
問題補(bǔ)充:在中介程序工程 FastCopy 中的代碼如下:
向工程中增加一個(gè)窗體Form1 ,向Form1中添加一個(gè)定時(shí)器 Timer1 , 增加一個(gè)標(biāo)簽控件 Label1 ,其 Caption 為 "應(yīng)用程序正在更新",并調(diào)整窗體大小.
Option Explicit
Private sPath As String '用于存儲(chǔ)服務(wù)器上的共享目錄
Private sName As String '用于存儲(chǔ)應(yīng)用程序名
Private Sub Form_Load()
Dim s As String
'從應(yīng)用程序的命令行參數(shù)中取得數(shù)據(jù)
s = Trim(Command())
Dim p As Integer
p = InStr(1, s, ",")
If p 0 Then
'取得儲(chǔ)服務(wù)器上的共享目錄
sPath = Mid(s, 1, p - 1)
'取得應(yīng)用程序名
sName = Mid(s, p + 1, Len(s) - p)
'定時(shí)器延時(shí)6秒,保證本地舊版應(yīng)用程序退出運(yùn)行
Timer1.Interval = 6000
Else
'參數(shù)錯(cuò)誤則退出
MsgBox "Error", vbCritical, ""
Unload Me
End
End If
End Sub
s=trim(command())
'取得命令行參數(shù)
應(yīng)該是這個(gè)形式:FastCopy.exe
網(wǎng)絡(luò)目錄名,文件名
's的返回值是
網(wǎng)絡(luò)目錄名,文件名
如:“\\liang\,myadd.exe"
'然后為了區(qū)分開目錄名和文件名,就查找","號(hào)
p=instr(1,s,",")
'如果找到就分別取“,”前面的目錄和后面的應(yīng)用程序名。
分享名稱:vb.net程序自更新 更新vbios
轉(zhuǎn)載來于:http://chinadenli.net/article16/hejigg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、品牌網(wǎng)站設(shè)計(jì)、ChatGPT、品牌網(wǎng)站制作、外貿(mào)建站、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)