我现在的做法是程序运行时,先看数据库中表a的字段是否等于写死在程序中的某个字符,如"V1.0版",每次我改了程序时,会先修改这个字符,如改为"V12.0版",再在数据库中把表a中字段的内容也改成一样的。用户在客户端运行程序时,如果是旧版本,就不能运行,就要自己去公共盘考下最新的系统把旧的覆盖才可以用。我看到许多系统都可以在客户端自动更新,而不用自己拷贝新程序,请问是如何做到的?可否提供一段代码?谢谢!
调试欢乐多
晕,你判断一下版本不一样后就copyfile('\\server\share\a.exe','.\',false);
服务器做一个共享文件夹,把文件放在上面!
procedure TForm1.UpdateSelf;
var f: textfile;
begin
AssignFile(f, RootPath+'\UpdateSelf.bat');
Rewrite(f);
writeln(f, '@echo off');
writeln(f, ':loop');
Writeln(f, 'del .\'+ExtractFileName(Application.ExeName));
Writeln(f, 'ren '+RootPath+'\NewServerUpdate.exe'+' ServerUpdate.exe');
writeln(f, 'if exist .\NewServerUpdate.exe goto loop');
{if IsAuto then
Writeln(f, RootPath+'\ServerUpdate.exe Auto')
else
Writeln(f, RootPath+'\ServerUpdate.exe');}
Writeln(f, 'del .\UpdateSelf.bat');
CloseFile(f);
WinExec(PChar(ExtracTFilePath(Application.ExeName)+'UpdateSelf.bat'), SW_HIDE);
end;
Visession Anyupdate自动升级软件系统
免费将自动升级功能加入您的软件产品中网站:http://www.visession.com/anyupdate
下载:http://www.visession.com/anyupdate/DownLoad.htm
里面写上自动下载的方法,比如文件在什么位置,新版本的信息,当然这些都是固定的,以启动此程序就下载版本,下载完后覆盖原文件主程序判断版本值不一样时启动Update.exe,并且关闭主程序,让Update.exe自己去下载并更新
>>修改时间精确到秒,我认为这是可行的办法。