自动更新程序-Delphi-demo
给一个…做的一个自动更新的玩意儿。
内使用的咯,
golang做的后台
C++写的库
Delphi写的客户端。。
真的是吃饱饭了。。。。。
客户端暂时 只支持 windows平台(好像也没有必要windows以外的) Windows7/Windows10 上使用
Delphi 简单的demo 如下
program ZeligAU;
{$APPTYPE CONSOLE}
{$R *.res}
uses
XSJson,
ice.Common,
(*
这边主要用到 json 解析 和 格式化文件大小什么的
可以下载 http://ice.zelig.cn/file/download?id=18 只支持 10.4 (谢谢不然请自己找替代...)
*)
System.SysUtils,
Zelig.AutoUpdate in '..\Unit\Zelig.AutoUpdate.pas';
(*---------------------------------------------------------------------------*)
const
PConfig = '{"logger":{"enable": true,"log_file":"autpupdate.log","max_size":10000},"update_check":"http://ice.zelig.cn/file/check_version?id=16&version=0.9","tempfile_path":".\\temp\\","unzip_path":".\\","version":1.101,"kill_processes":["qq.exe"]}';
(*---------------------------------------------------------------------------*)
begin
try
{ TODO -oUser -cConsole Main : Insert code here }
with TZeligAutoUpdate.Create do
begin
OpenConfig(PCOnfig);
OnCheckUpdate:= function(const HTTP_STATUS: Cardinal; const JSON: string): TCheckUpdateResult
begin
var JO: ISuperObject:= SO(JSON);
Result.Next:= JO.I['state'] = 0 ;
if Result.Next then
begin
Result.Next:= JO.O['data'].B['update'];
FillChar(Result.URL,Length(result.URL),#0) ;
if Result.Next then
Strcat(Result.URL,PAnsiChar(AnsiString(JO.O['data'].S['url'])));
end
else system.Writeln(Jo.S['msg']);
end;
OnError:= procedure(const ECODE: TAD_ERROR_CODE; const Msg: string)
begin
System.Writeln('Error: ' + Msg);
end;
OnUnzipExtractFile:= procedure(const FileName: string)
begin
System.Writeln(FileName);
end;
OnDownloadProgressor:= procedure(const dnow,dtotal,unow,utotal,speed: Double )
begin
system.Writeln(Format('文件大小: %S, 已下载: %s, 下载速度: %s',[FormatSize(dtotal),
FormatSize(utotal),
FormatSize(speed)]))
end;
Auto;
Free;
end;
readln;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
客户端演示 可以直接拉取代码 或者在下面网盘下载压缩包
gitee https://gitee.com/Icy2010/Zelig.AutoUpdate.git
网盘下载(Zelig.AutoUpdate.zip) http://ct.icy6.com/f/18943335-496275361-457292
还没有评论,来说两句吧...