首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

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

2012-02-03 
请问如何让客户端程序 自动更新 版本?我现在的做法是程序运行时,先看数据库中表a的字段是否等于写死在程序

请问如何让客户端程序 自动更新 版本 ?
我现在的做法是程序运行时,先看数据库中表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 下載自解包

更新失敗回滾........

热点排行