Delphi知识中心
www.delphi.ee
提供Delphi技术知识
与Delphi程序员共同进步


在线服务QQ:99923144 随时恭候您的光临
首页 基础知识 WIN系统 组件使用 组件开发 数据库 ACTIVEX 多媒体技术 网络技术 关于
文章类别:组件使用    你尚未登陆,会员功能无法使用,请从 网站首页 登陆。
  软件自动更新功能的简单实现  
 
自动更新功能的简单实现

Tiger Update是Tiger Installer安装制作软件附带的一个控件,它可以帮助
你轻松地在你的软件上加入自动更新功能。这个控件是免费而且开放源代码的。

Tiger Update实现自动更新实现的原理如下:
1. 通过Tiger Installer制作安装程序和升级包
2. 在一个Web Server上增加一个取得最新版本的链接和一个下载升级包的链接。
3. 软件通过Tiger Update组件取得最新版本和调用升级包升级。

Tiger Update控件的安装
1. 用Delphi(6/7)打开TigerUpdate60.dpk,编译安装
2. 点击Delphi的菜单"Tools->Environment Options.."进入
Environment Options..对话框,在Library页面中把Tiger Update控件所在的
目录加入到Library Path中
3. 安装完毕。

Tiger Update控件的属性和方法
property Version : String; 软件的当前版本。
property VersionURL : String; 取得最新版本的URL。
property DownloadURL : String; 下载升级包的URL。
property LatestVersion : String; 最新版本。
function Download : Boolean; 下载升级包,并且执行升级。

安装程序和升级包的制作
安装程序和升级包制作参考Tiger Installer使用指南,通过菜单“文件->新建->本项目升级包”就可以创建当前项目的升级包。升级包会和原来的安装融合在一起,卸载以后原来安装的对象和历次升级包安装的对象都会被清除干净。

Tiger Update自动更新的流程
首先从LatestVersion取得最新版本,然后和现有版本比较,如果最新版本比现有版本新就执行Download方法更新软件。注意,执行安装包的时候会等待主程序结束,防止不能更新主程序的情况发生,所以在执行Download方法后如果返回值是True表明更新下载成功,升级包已经启动,主程序必须马上关闭,升级包会等待10秒钟,超过了10秒将会报超时错误。

范例:
在需要强制更新软件的情况下(比如某些C/S系统,为了保证数据安全,所有客户端的版本必须是最新的),可以在主程序的Dpr文件加上下面的代码:
//以下的代码适合需要强制升级的情况
with TTigerUpdate.Create(nil) do
begin
try
VersionURL := 'http://127.0.0.1/Update.asp?Command=Version';
DownloadURL := 'http://127.0.0.1/Update.asp?Command=Download&Version=';
Version := '1.01';
if (LatestVersion > Version) and Download then
Exit;
finally
Free;
end;
end;
////////////////////////////////////////
这样每次主程序运行都会检查并更新程序

Web服务器的Asp范例
<%if request("command") = "Version" then
if now >= "2005-3-27 00:00:00" then
response.Write("1.01")
else
response.Write("1.00")
end if
else
if request("command") = "Download" then
if request("version") >= "1.00" then
Response.Redirect("http://127.0.0.1/Update.exe")
else
Response.Redirect("http://127.0.0.1/Update.exe")
end if
end if
end if
%>
上面这个简单的Asp可以根据用户设定的更新时间更新软件,同时还可以根据客户端的版本提供不同的升级包。

控件下载:http://www.wisdomcube.com/stuff/tigerupdate.rar (包含范例程序)
软件下载:http://download.pchome.net/development/install/19827.html

 

在线服务QQ:99923144 Delphi程序员QQ群(139442)
Delphi知识中心 www.delphi.ee 最专业的Delphi技术资料网站