好了,下载档案、检查 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.