如何實現軟件在線升級_電腦知識網
熱點推薦:
您现在的位置: 電腦知識網 >> 軟件專區 >> 正文

如何實現軟件在線升級

2013-09-12 15:53:22  來源: 軟件專區 

  一、實現原理
         一般來說Update分為客戶端和服務器端兩個組成部分,客戶端接收服務器上的更新信息,並下載更新文件,然後完成一系列注冊、配置等更新工作,全部自動化,不用人工操作。
  根據筆者的經驗,Update程序最好獨立於主程序之外,也就是說有一個單獨的Update.exe程序來執行更新操作,這樣既可以直接更新主程序,也便於完成Update的“自身更新”。
  首先,我們遇到的第一個問題是選擇合適的開發工具。一般來說Update的功能並不復雜,只是完成下載更新的功能,所以本文就用VB語言編寫代碼。另外也可以選用一些成熟的Update組件,例如用.NET框架開發的應用程序更新組件AppUpdater等,都可以很方便地幫助我們而只需要編寫極少的代碼。
  由於各種Update程序的種類繁多,本文主要介紹通用的一些特性以及適合個人編程、小型公司的Update經濟方案,執行流程如下:
  1.下載網站某個頁面,根據頁面內容獲得最新版本號;
  2.如果最新版本高於當前版本,則下載升級文件(一般為壓縮包);
  3.釋放文件,並用最新文件替換舊文件完成升級。
  按照這個最簡化的方案,當開發者需要更新升級軟件的時候,只用FTP上傳更新文件即可。Tw.WiNgwIT.CoM好處是可以不必開發服務器端,更不用購買或租用昂貴的升級服務器。
  OK,我們現在開始詳細剖析Update的具體執行過程,軟件界面如圖。
二、穿透防火牆
  首先,Update要對網絡是否已經連通進行判斷。筆者在這個問題上反復使用過多種方法:Ping某個IP地址、獲取注冊表鍵值、網卡連通判斷等等,最終都不理想。原因在於IP地址可能變化、甚至有時候即使物理連通了,也不一定能夠確保文件的下載更新。
  筆者使用的方法是利用Microsoft Internet Con trols控件訪問開發者的官方首頁來判斷網絡是否已經連通。代碼如下:
  Dim Network As Long
  Private Sub Form_Load()
  WebBrowser1.Navigate "http://www.boobsoft.com"
  End sub
  Private Sub WebBrowser1_DownloadComplete() '當Web頁面載入完畢此事件激活
  If Network = 0 Then
  Label1.Caption = "正在升級,請稍後..."
  Update '調用升級過程
  End If
  End Sub
  Private Sub WebBrowser1_NavigateError(ByVal pDisp As Object, URL As Variant, Frame As Variant, StatusCode As Variant, Cancel As Boolean) '當Web頁面浏覽失敗的時候此事件激活
  Network = -1'必需此語句,在Update過程中要判斷網絡是否持續通暢
  MsgBox "網絡沒有連通,或升級服務器臨時關閉,請稍後再試。"
  End Sub
  小經驗:Internet Controls控件的好處不僅是代碼簡單,它是微軟官方控件,更重要的是可以直接穿透防火牆,節省了我們很多時間。

 
From:http://tw.wingwit.com/Article/Software/201309/339.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.