读书人

请教怎么让客户端程序 自动更新 版本

发布时间: 2012-02-03 22:02:47 作者: rapoo

请问如何让客户端程序 自动更新 版本 ?
我现在的做法是程序运行时,先看数据库中表a的字段是否等于写死在程序中的某个字符,如 "V1.0版 ",每次我改了程序时,会先修改这个字符,如改为 "V12.0版 ",再在数据库中把表a中字段的内容也改成一样的。

用户在客户端运行程序时,如果是旧版本,就不能运行,就要自己去公共盘考下最新的系统把旧的覆盖才可以用。

我看到许多系统都可以在客户端自动更新,而不用自己拷贝新程序,请问是如何做到的?可否提供一段代码?谢谢!

[解决办法]
晕,你判断一下版本不一样后就copyfile( '\\server\share\a.exe ', '.\ ',false);
服务器做一个共享文件夹,把文件放在上面!
[解决办法]
SF............
[解决办法]
你可以在服务器上建一个HTTP或FTP,把你的最新程序放在这里面,再建一上文件文件,里面写上最新程序的版本号,当客户端程序启动时就以HTTP或FTP的方式把服务器上写着版本号的那个文本文件载下来,比较本机的客户端版本号和这个文本文件里的版本号,如果发现小于最新版本号,就下载安装就行了,你可以把最新的程序做成安装程序,载下来后自动运行安装程序,也可以只放需要更新的文件,那你就需要把所有文件都载下来后挨个替换,当程序本身也需要替换的时候可以用以下代码
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;

[解决办法]
我以前做了自更新的。

用 http 。用 xml 定。

看起,其可做的西是不少的。

多服器,多下,用身份限管理
比版本。更新正在行的程序

自注 DLL ,ocx ,exe

ZIP 下自解包

更新失回........

读书人网 >.NET

热点推荐