简单的在线升级程序
如果你的升级过程比较简单(例如只需要下载更新一个主程序),那么本示例就比较适合你。
下载升级文件的程序这里就不再赘述,详细使用方法请参考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;