简单的在线升级程序

如果你的升级过程比较简单(例如只需要下载更新一个主程序),那么本示例就比较适合你。

下载升级文件的程序这里就不再赘述,详细使用方法请参考http://www.cnblogs.com/Aricc/archive/2008/11/26/1341378.html

现在,我们只需要在主程序中加入一个很简单的Procedure就可以完成升级任务了。

假设下载回来的最新程序的完整路径是New,当前运行的程序的路径是Old。

那么,在程序一开始运行的时候加入一个版本判断的Procedure(用Tidhttp或者Socket都可以)。在确定需要升级时调用升级的Procedure(这里就叫它Updater吧)。

Updater(New,Old);

这样就可以了。

下面来看看Updater里是些什么东西:

ProcedureUpdater(new,old:string);
var
  f:Textfile;
begin
  AssignFile(f,'temp.bat');
  Rewrite(f);
  Writeln(f,'@set new=%1');
  Writeln(f,'@set old=%2');
  Writeln(f,'del %old%');
  Writeln(f,'copy %new% %old%');
  Writeln(f,'del %new%');
  Writeln(f,'%old%');
  Writeln(f,'del %0');
  CloseFile(f);
  Application.Terminate;
  WinExec(PChar('temp.bat "' + new +'" "' +old +'"'),SW_HIDE);
end;

posted @ 2008-11-26 12:59  Aricc  阅读(570)  评论(0编辑  收藏  举报