小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Delphi中如何替換運行之中的文件實現(xiàn)程序的自動更新

 quasiceo 2014-07-30
各位朋友:
    最近在開發(fā)一個自動更新的程序,其主要原理是:當(dāng)主程序啟動后,其軟件升級子模塊自動從網(wǎng)上下載主程序(.exe)和與之相關(guān)的DLL等文件到本機(jī)的一個臨時目錄。然后在比較正運行的主程序和DLL等文件與臨時目錄中的文件是否需要替。如果需要,用臨時目錄中的文件替換原有文件。
  其中我已經(jīng)實現(xiàn)了下載、比較等功能。但是如何替換正在運行中的主程序和DLL文件時卻遇到了技術(shù)困難。為了解決這個難點我設(shè)計了一個方案即:利用Windows API 中的MoveFileWithProgressW來實現(xiàn)。但是,我發(fā)現(xiàn)在用Delphi開發(fā)的主程序中能實現(xiàn)更新,但是用PB開發(fā)的文件卻出了“文件訪問拒絕”或“有其它進(jìn)程使用,不能移動”錯誤。
  特向各位朋友尋求技術(shù)支持:
1、MoveFileWithProgressW在Delphi中的詳細(xì)用法
2、各位是否有更佳的方法來實現(xiàn)自動升級

主進(jìn)程啟動后,自動啟動UPDATE.EXE,
UPDATE.EXE負(fù)責(zé)下載更新文件,關(guān)閉主程序,更新文件。

UPDATE.EXE的行為應(yīng)根據(jù)從服務(wù)器下載的更新腳本執(zhí)行,這樣就可以在其他項目中重用。

這樣做下載量是不是太大.一般先下載一個更新說明文件(帶有更新文件名和版本號,文本或者XML),在本地比較之后再決定下載什么文件,然后才是替換.

替換一般的東西,可以關(guān)閉正在運行的程序,然后復(fù)制過去.如果是24*7的程序,就需要更復(fù)雜的方式,

可以參考某些殺毒軟件,下載一個升級包,下載完自動運行升級包,升級包運行的時候把主程序關(guān)掉,更新就是了。

謝謝各位同行的積極參與,我在網(wǎng)上查詢了有關(guān)自動更新的一些技術(shù)和資料??偟膩碚f大多并只是簡單的利用FTP、TCP/IP實現(xiàn)網(wǎng)絡(luò)的傳輸。我根據(jù)客戶網(wǎng)絡(luò)以及軟件開發(fā)工程師的要求,重新設(shè)計了一個通用自動更新軟件。
  在通用自動更新系統(tǒng)中,第三方開發(fā)的軟件代碼中加載一個DLL(自動升級客戶端)文件,在服務(wù)器軟件上進(jìn)行相應(yīng)的配置,就可以輕松實現(xiàn)對此軟件的自動更新功能。
  在此系統(tǒng)中,對服務(wù)端硬件沒有任何要求。為滿足超大網(wǎng)絡(luò)客戶端(500臺PC以上),服務(wù)端軟件可能根據(jù)網(wǎng)絡(luò)負(fù)載隨時增減。
  經(jīng)過測試此系統(tǒng)已能支持VC、VB、DELPHI、PB(6~9)、.NET(2003)開發(fā)的軟件中實現(xiàn)自動更新功能。
  單臺服務(wù)端壓力測試支持200客戶端PC、20MB同時在線升級。

 


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多