全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:5922
推到 Plurk!
推到 Facebook!

自動更新程式

 
fengcheng
一般會員


發表:17
回覆:21
積分:7
註冊:2002-04-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-06-18 18:27:24 IP:211.74.xxx.xxx 未訂閱
有什麼辦法可以寫出像norton 的liveupdate的程式 自動或手動連上網路更新程式 還有就是如何可以知道使用者把程式安裝在哪個路徑?
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-06-18 19:49:04 IP:61.219.xxx.xxx 未訂閱
引言: 有什麼辦法可以寫出像norton 的liveupdate的程式 自動或手動連上網路更新程式 還有就是如何可以知道使用者把程式安裝在哪個路徑?
一個最簡單的想法,設一個FTP Server,內放一個版本文字檔, 程式執行時自動從FTP下載此版本文字檔,檢查版本數字與目前程式版本比對, 若有新版就從FTP下載最新安裝程式,下載完成呼叫此安裝程式執行,安裝程式一但執行成功,就結束本軟體,接下來的動作就交給安裝程式! 安裝程式先檢查先前記錄在Registry中的程式安裝目錄位置,自動解壓將程式安裝至原目錄中,安裝完自動執行軟體,就更新完成了! 這其中需要一些關鍵技術: 1.架一個FTP Server 2.寫程式下載FTP檔(可參考本站FTP範例) 3.自行制做安裝軟體(見本站Install Shield範例,有Source的) 4.寫入與叫出Registry的方式 5.判斷程式執行成功的方法 您先試試看! ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
cuteysc
初階會員


發表:16
回覆:37
積分:35
註冊:2003-05-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-30 12:42:08 IP:61.216.xxx.xxx 未訂閱
引言: 有什麼辦法可以寫出像norton 的liveupdate的程式 自動或手動連上網路更新程式 還有就是如何可以知道使用者把程式安裝在哪個路徑?
一個使用 FTP 的方法 (但不需要重新安裝) 設立一個 FTP Server, 並放入一個文字檔 這個文字檔內包含了 [檔案名稱] [檔案大小 Bytes] 當程式下載後該文字檔後, 即利用檔案大小比對方式比對檔案名稱 .. 若發生 : 1. 沒有此檔案 then 下載 2. 檔案大小不對 then 下載 3. 檔案大小相符 then 比對下一個檔案 如此 .. 一直比對到檔案結束, 完成整個 AutoPatch 的動作 這樣一來, FTP Server 端必須有一支程式, 分析 FTP 內資料夾所有檔案的名稱以及檔案大小, 並再每次版本有變動之時, 做一次分析, 以便造出 Patch 文字檔 這樣的方式有個好處 : 1. 使用者不必重新下載 Install.exe 執行檔 (因為有可能你只更動一張 .bmp 圖片或是 .dll 函式庫) 對於大型的軟體, 是不適合讓使用者每次都下載幾十或是幾百 MB 的安裝檔 2. 只要有新版本或新檔案需要更新, 軟體商只要將新檔案放入 FTP 內, 相當方便 當然也有缺點 : 1. 新的檔案大小與舊檔案大小相同, 則會發生錯誤, 這點必須注意 也有更好的方法, 所謂的 CRC Check, 這樣可以防止檔案大小相同而 Patch 佈到的問題.. 有關 CRC Check, 若有興趣我再 Po 上 Y.S.C.
現任:Programmer 深度論壇 BCB Internet 版主
http://www.chatking.net 聊天王 語音聊天社群 創辦人
jt25
一般會員


發表:14
回覆:30
積分:8
註冊:2003-08-19

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-08-21 17:23:07 IP:61.59.xxx.xxx 未訂閱
站長  可以借紹一下範例嗎? 因為我是 Delphi 新手 Thanks !..
tonyplus
初階會員


發表:22
回覆:97
積分:28
註冊:2002-04-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-08-22 12:02:02 IP:211.23.xxx.xxx 未訂閱
也有更好的方法, 所謂的 CRC Check, 這樣可以防止檔案大小相同而 Patch 佈到的問題.. 有關 CRC Check, 若有興趣我再 Po 上 小弟對這個 CRC Check 的主題有興趣,請 cuteysc 兄賜教!!
imyst918
一般會員


發表:2
回覆:5
積分:1
註冊:2004-08-17

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-01-30 17:07:45 IP:61.219.xxx.xxx 未訂閱
我現在也是在做這方面的東西。請問,因為我的更新需要動到dll的更新,所以我的更新方式是先自動更新後將更新的檔存在一暫存的地方,而我必須要重開機,當我重開機,我必須在作業系統起來前就要將dll更新完畢(因為我有動到gina.dll),若是如此,我應該如何操作我的更新程式?
pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-01-31 14:19:44 IP:220.131.xxx.xxx 未訂閱
32 Bit Delphi 深度歷險 - 磁碟及檔案輸出入元件 FILECMPR.ZIP TFileCompare 是能夠比對判斷兩個檔案內容是否同的類別 ( 1.0 版,附原始程式碼 ),作者 : Mike GIBBARD。 http://vcl.vclxx.org/DELPHI/D32FREE/FILECMPR.ZIP 努力會更接近成功
------
努力會更接近成功
a6475
高階會員


發表:67
回覆:230
積分:154
註冊:2002-09-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-01-31 16:45:04 IP:211.23.xxx.xxx 未訂閱
我們現在產品也有線上更新程式。 使用方法就是在本地端和和Server端各放一個文字檔。 大概如下 UNITLINK.ZIP,383527017,主程式 GUIDE.ZIP,382017586,使用手冊    其中數字的地方,就是一個日期時間。 只要比較日期時間,只要Server的日期時間比較大 就下載該程式。    這樣的好處是,可以直接走HTTP,不需使用FTP來比較檔案大小 但是需要寫一支小程式來維護該文字檔。    ..-----------βλμε------------..
◎Oo月夜 光明 藍更愁oO◎
藍調月光城v4:http://inping.myweb.hinet.net/ (暫時使用中..) 明日報(藍調.月光):http://mypaper2.ttimes.com.tw/user/a6475
------
月夜 光明 藍更愁
adonis
高階會員


發表:140
回覆:258
積分:159
註冊:2002-04-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2007-03-30 15:58:59 IP:210.201.xxx.xxx 訂閱
cuteysc 提到可用 CRC 來檢查是否本地端的檔案與FTP上的檔案是否一樣,若一樣則不用下載..
但不了解的是..
我可以用 CRC 去檢查 本地端的檔案 .. 但是 FTP上的檔案 若不先下載回來該怎麼執行 CRC 的檢查呢?
然而若需要先下載回來執行 CRC 檢查的話,那不就必須全下載回來再一一比較,不是嗎?

不知先進們如何在執行程式更新時可以避免下載同樣的檔案?
謝謝....
------
我也在努力學習中,若有錯謬請見諒。
系統時間:2024-05-14 21:04:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!