亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

用VB實現應用程序在局域網絡上自動更新

2019-11-18 17:35:55
字體:
來源:轉載
供稿:網友
我們在用VB開發大型應用程序時遇到如下問題,進入調試、維護階段開發小組進駐用戶單位,軟件交用戶試用會經常修改程序并重新編譯。然后再由程序員給用戶復制更新,或者通知用戶自行復制更新。對于少量用戶可以做到及時更新。而我們的一個用戶在一座十層的大廈中辦公,有十幾個部門(即有管理部門又有生產車間分布在不同的樓層),每個部門少則有2~3臺工作站,多則有數十臺工作站,與四臺服務器組成局域網絡.且每個部門應用程序各不相同,應用程序修改編譯后經常不能同步更新,從而造成部門內數據或者部門間的數據不一致。程序員每天都要跑上跑下檢查版本更新程序浪費了很多寶貴時間,即使通知部門主管自行更新,某些工作站也會出現遺漏現象。鑒于以上問題我們考慮使用程序自動更新技術,即自動檢查新版本,將新版本復制到本地,重新執行本地應用程序。
基本原理:在某個服務器上共享出一個目錄,其權限為程序員完全控制,其它用戶只讀。
例如://NtServer01/Refresh,程序員重新編譯后的應用程序.EXE都存放在此目錄下。
在應用程序的入口處調用版本檢查及更新過程,如果服務器應用程序的修改時間大于本地應用程序的修改時間,則認為有新版本出現,應該將服務器上的新版本復制到本地硬盤。
由于應用程序在運行時不能被新版本覆蓋,所以就需要中介程序FastCopy.EXE(也用VB編寫)來完成更新版本并重新運行本地應用程序。為了達到及時更新的目的可在應用程序中每隔5分鐘或10分鐘檢查一次是否有新版本。(此部分略有興趣的讀者可自行編程添加)
本例中:
服務器:NtServer01共享目錄:Refresh
應用程序:MyApp.exe中介程序FastCopy.exe(都存儲于共享目錄中)
下載源代碼(6K)

具體程序實現如下:
在應用程序工程MyApp中的部分代碼如下:
OptionExplicit
'編譯后的應用程序名稱,注意沒有后綴.EXE,本例為MYAPP

PrivateSubForm_Load()
IfUCase(Trim(App.EXEName))<>UCase(Trim(App_Name))Then
MsgBox"必須將訂單管理系統的名稱更改為:" App_Name
End
EndIf
'判斷是否有最新版本的應用程序,如有則自動更新
CallExeRefresh

'下面為訂單管理系統的正常操作略.......
EndSub

'版本檢查及更新過程
PrivateSubExeRefresh()
'定義四個臨時字符串變量
Dims1AsString
Dims2AsString
Dims3AsString
Dims4AsString
OnErrorResumeNext
'將本地應用程序MyApp.EXE的全路徑名存入s1
'將本地中介程序FastCopy.exe的全路徑名存入s3
s1="TNT"
IfLen(App.Path)>3Then
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"
EndIf

s4="TNT"
'將本地應用程序MyApp.EXE文件的修改時間存入s4
s4=FileDateTime(s1)
s2="TNT"
'將網絡上應用程序MyApp.EXE文件的修改時間存入s2
s2=FileDateTime(ExePath App_Name ".EXE")
Ifs2="TNT"Then
MsgBox"沒有找到最新的可執行文件:" ExePath App_Name ".EXE"_
vbCrLf vbCrLf "原因1:存放最新EXE的服務器或者工作站沒有打開;"_
vbCrLf "原因2:存放最新EXE的路徑錯誤或者EXE文件不存在;"_
vbCrLf "請將此情況通知程序員." vbCrLf vbCrLf_
vbCrLf "按確定按鈕后,將繼續運行本地EXE文件.",vbCritical,"提示"
EndIf
Ifs2="TNT"Ors4="TNT"ThenExitSub
'如果網絡上應用程序MyApp.EXE文件的修改時間,大于本地MyApp.EXE文件的修改時間
'然后再運行本地MyApp.EXE,中介程序退出后,整個更新過程結束.
IfCDate(s2)>CDate(s4)Then
'將網絡上的中介程序FastCopy.exe復制到本地,這樣可防止本地無中介程序時無法進行更新
FileCopyExePath MidExeName ".EXE",s3
'則運行中介程序FastCopy.exe,將最新的MyApp.EXE復制到本地
s1=Shell(s3 "" ExePath "," App_Name ".EXE",vbNormalFocus)
'本地應用程序MyApp.EXE終止運行,否則已經更新的MyApp.EXE無法覆蓋本地的MyApp.EXE.
End
EndIf
EndSub
將以上程序編譯為:MyApp.exe存儲在共享目錄中.

在中介程序工程FastCopy中的代碼如下:
向工程中增加一個窗體Form1,向Form1中添加一個定時器Timer1,增加一個標簽控件Label1,其Caption為"應用程序正在更新",并調整窗體大小.
OptionExplicit
PrivatesPathAsString'用于存儲服務器上的共享目錄
PrivatesNameAsString'用于存儲應用程序名
PrivateSubForm_Load()
DimsAsString
'從應用程序的命令行參數中取得數據
s=Trim(Command())
DimpAsInteger
p=InStr(1,s,",")
Ifp>0Then
'取得儲服務器上的共享目錄
sPath=Mid(s,1,p-1)
'取得應用程序名
sName=Mid(s,p 1,Len(s)-p)
'定時器延時6秒,保證本地舊版應用程序退出運行
Timer1.Interval=6000
Else
'參數錯誤則退出
MsgBox"Error",vbCritical,""
UnloadMe
End
EndIf
EndSub

'定時器代碼
PrivateSubTimer1_Timer()
Timer1.Interval=0
Dims1AsString
'取得應用程序的本地路徑
IfLen(App.Path)>3Then
s1=App.Path "/" sName
Else
s1=App.Path sName
EndIf
'保證服務器關機或者路徑錯誤仍可運行舊版本
OnErrorResumeNext
'將服務器共享目錄中的最新版本復制到本地
FileCopysPath sName,s1
DimaAsLong
'執行本地的應用程序
a=Shell(s1,vbNormalFocus)
'中介程序退出運行,應用程序自動更新結束
UnloadForm1
End
EndSub
將工程FastCopy編譯為FastCopy.exe并存儲于服務器的共享目錄。

測試:
1、將服務器共享目錄中的:MyApp.exe復制到本地硬盤的某個目錄中;
2、重新編譯MyApp工程,將MyApp.exe復制到服務器的共享目錄中,注意一定不要覆蓋本地的MyExe.app;
3、這樣服務器上MyApp.exe的修改時間肯定大于本地MyApp.exe的修改時間;
4、運行本地MyApp.exe,幾秒鐘后屏幕上會出現"應用程序正在更新"的窗體,隨后更新后應用程序再次被運行。則自動更新成功。
5、程序的修改時間可通過在文件上用鼠標按右鍵的屬性或內容的菜單觀察。
本程序在Windows98和VB6.0,NT局域網絡下測試通過。
本文內容也適用于其它語言參考。->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品国产欧美成人夜夜嗨| 亚洲精品久久久久久下一站| 精品无人国产偷自产在线| 国产美女精品视频| 久久久爽爽爽美女图片| 91精品国产综合久久香蕉922| 日韩精品在线免费观看视频| 欧美日韩黄色大片| 欧美国产第二页| 性视频1819p久久| 日韩av在线免费观看一区| 国产精品永久免费在线| 亚洲第一天堂无码专区| 国产精品视频xxxx| 国产精品午夜一区二区欲梦| 国产精品永久免费视频| 97视频免费观看| 日韩经典一区二区三区| 欧美成aaa人片免费看| 蜜月aⅴ免费一区二区三区| 欧美国产精品va在线观看| 欧美激情亚洲精品| 久久久午夜视频| 国产在线观看精品一区二区三区| 国产在线精品一区免费香蕉| 91精品在线国产| 精品久久久久久中文字幕| 欧美成人自拍视频| 粗暴蹂躏中文一区二区三区| 福利视频一区二区| 亚洲欧美综合图区| 国产亚洲人成网站在线观看| 欧美性理论片在线观看片免费| 亚洲国产女人aaa毛片在线| 国产精国产精品| 国产精品av电影| 久久精品色欧美aⅴ一区二区| 欧美成人午夜视频| 日韩性生活视频| 国产成人精品久久亚洲高清不卡| 亚洲伊人久久大香线蕉av| 亚洲理论在线a中文字幕| 欧美日韩国产一区二区| 国产精品都在这里| 欧美日韩亚洲成人| 97精品国产97久久久久久| 国产精品久久久久久久久久东京| 日韩中文字幕在线观看| 国产日韩精品综合网站| 欧美孕妇与黑人孕交| 国产精品直播网红| 久久久999精品| 国产久一一精品| 亚洲国产精品久久| 69久久夜色精品国产69| 日韩最新av在线| 国产精品久久久久久久久久久不卡| 日韩电视剧免费观看网站| 亚洲国产精彩中文乱码av在线播放| 中文综合在线观看| 亚洲综合日韩中文字幕v在线| 国产精品久久久久高潮| 国产精品第8页| 亚洲国产成人精品一区二区| 日韩中文字幕国产精品| 色综合久久88色综合天天看泰| 日本国产欧美一区二区三区| 国产精品青青在线观看爽香蕉| 最近中文字幕2019免费| 91中文字幕在线| 久久久久亚洲精品| 亚洲国产成人在线视频| 久久精视频免费在线久久完整在线看| 91po在线观看91精品国产性色| 97久久超碰福利国产精品…| 久久69精品久久久久久久电影好| 欧美高清自拍一区| 亚洲最新av在线| 日韩免费av在线| 亚洲成年人在线| 亚洲精品国产福利| 亚洲一区二区在线播放| 在线观看视频亚洲| 精品国产31久久久久久| 国产91成人在在线播放| 国产精品免费小视频| 亚洲精品美女在线观看播放| 国产精品私拍pans大尺度在线| 日本a级片电影一区二区| 成人性生交大片免费看小说| 久久成人人人人精品欧| 亚洲欧美国产一区二区三区| 久久精品国产亚洲精品2020| 欧美激情图片区| 亚洲国产99精品国自产| 国产成人久久久| 亚洲无限乱码一二三四麻| 欧美一区视频在线| 97精品一区二区三区| 亚洲成人网在线观看| www日韩中文字幕在线看| 青青精品视频播放| 国产日产欧美精品| 中文字幕在线精品| 欧美一级在线亚洲天堂| 国产精品一区二区av影院萌芽| 国模视频一区二区三区| 亚洲人成毛片在线播放| www.亚洲一区| 国产精品欧美亚洲777777| 国内偷自视频区视频综合| 亚洲美女又黄又爽在线观看| 亚洲激情视频在线| 国产精品久久久av| 亚洲免费小视频| 国产欧美久久一区二区| 国产精品∨欧美精品v日韩精品| 高清欧美一区二区三区| yw.139尤物在线精品视频| 黄网站色欧美视频| 亚洲a级在线观看| 91九色在线视频| 国产一区二区三区毛片| 久久久www成人免费精品| 亚洲一区二区自拍| 国产69精品久久久久99| 久久99久久99精品中文字幕| 国产精品日韩久久久久| 欧美久久久精品| 亚洲另类欧美自拍| 一区二区三区四区在线观看视频| 久久国产精品久久久久| 欧美日韩成人在线观看| 青青草精品毛片| 日韩精品黄色网| 欧美福利视频网站| 亚洲国产精品推荐| 欧美疯狂性受xxxxx另类| 欧美亚洲在线播放| 最新亚洲国产精品| 国产精品久久久久久久久男| 日韩三级影视基地| www.日韩视频| 欧美电影免费观看高清完整| 九九视频直播综合网| 精品国产乱码久久久久久婷婷| 亚洲精品第一页| 456亚洲影院| 亚洲精品在线91| 亚洲自拍小视频免费观看| 久久久久久久香蕉网| 欧美亚洲视频在线看网址| 久久99视频免费| 欧美视频不卡中文| 日韩在线观看你懂的| 欧美激情xxxx性bbbb| 91精品国产乱码久久久久久蜜臀| 亚洲午夜女主播在线直播| 奇米成人av国产一区二区三区| 91精品国产自产在线| 日韩一区在线视频| 97在线精品国自产拍中文| 国产精品久久久久久一区二区| 国产综合在线观看视频|