好了,下載檔案、檢查 Md5、解壓縮、複製檔案、呼叫遊戲、檢查重複程序 的功能都已經做好
GIF 動畫展示:
其中 ICSharpCode.SharpZipLib.dll, MySharpZip.dll 這兩個 DLL 我沒辦法把他弄到 EXE 本身裡面,所以只好與 Launcher 放在同一個資料夾
預設的 FTP 是連線到
ftp://192.1....104 ,可以用你所提供的網頁中介紹的軟體
PCMan's FTP Server 來模擬本機的 FTP 下載,程式碼中可以修改
預設的 FTP 逾時是一分鐘,網頁逾時是半分鐘,可以調整
至於 FTP 上的資料夾,必須先建立個 CS_Update 資料夾,然後在底下置放一個索引文件 Index.txt
接著在 CS_Update 資料夾下就可以放置 cstrike 資料夾 (允許子資料夾),之後就能放更新的文件
但更新的文件必須全部是 zip 壓縮檔,並與原來檔名一樣(例如 cstrike.exe -> cstrike.exe.zip)
例如,檔案分配如下 (我設定本機的 FTP 指向 Desktop\TempFTP\ ):
複製程式
Index.txt Desktop\TempFTP\CS_Update\Index.txt
mp.dll.zip Desktop\TempFTP\CS_Update\cstrike\mp.dll.zip
temp.zip Desktop\TempFTP\CS_Update\cstrike\temp.zip
test.zip Desktop\TempFTP\CS_Update\cstrike\test.zip
而
index.txt 的內容:
複製程式
[Update]
"\cstrike\temp" 23677 MD5MD5MD5MD5MD5MD5MD5MD5MD5MD5MD
"\cstrike\mp.dll" 548 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
"\cstrike\test" 17760 715BD382F69BF50C6A4B3A05080AC3A4
[Remove]
"Test"
index.txt 的 [Update] 底下的,一開始是 檔案路徑,接著是 "壓縮檔" 的檔案大小,再來是 "解壓縮後檔案" 的 Md5,三個項目以空白鍵分開,檔案路徑必須被雙引號夾起來
"壓縮檔" 的檔案大小 是為了 顯示進度列,"解壓縮後檔案" 的 Md5 是為了檢查是否要更新
推薦的 Hash Codes 產生器/讀取器:
HashMyFiles (其他還有 HashCalc, HashX, Hash Codes, Arpoon Checksum, ExactFile 等 Hash/Checksum 的免費軟體)
而更新的過程:
(1) 下載 Index.txt 知道更新的目錄 (索引清單)
(2) 開始檢查已經存在檔案的 Md5 並與索引清單對比,不相符的下載ZIP檔案 (下載到 %Temp%\ 中)
(3) 全部下載完後解壓縮 (在 %Temp%\ 中)
(4) 複製檔案(會覆蓋)到Launcher 本身資料夾底下的資料夾 (包含子資料夾)
(5) 刪除檔案 (只刪除 index.txt [Remove] 標頭底下提供的清單,這個設計到時候可能不需要,只是為了客戶端 檔案簡潔之用 (例:把舊的檔案刪除))
採用 ZIP 壓縮檔好處是能節省 下載時間,如果你覺得一個檔案一個檔案 壓縮成 ZIP 檔案很煩
可以用免費軟體
ArcThemAll 把選取的檔案一次 每個都加入到 個別的 ZIP 檔案
而新的資料我改存到 %Temp% 中,你可以在程式執行中在 %Temp% 下找到 CSOLnchr_Simu_XXX 的資料夾 (會在 Launcher 關閉時被刪除)
還有,我剛剛執行似乎有發現一個 BUG,就是 Launcher 本身可以重複啟動
其他功能請自行修改,我已經幫你完成幾乎所有部分了
CSOLauncher Simulation VB 2010 專案下載:
Sorry this attachment is not available for download right now.