当前位置:主页>仓库管理软件> 列表

关于局域网内客户端软件的更新问题!!

进销存管理软件版1楼: 比如说一个局域网内有N个客户端软件,怎么能不用一台机子一台机子的更新,而是把要更新的程序放到服务器的一个指定的地方然后编个小程序来统一更新一下。大家有什么好的方法可以说一下,最好能有做好的例子给一个,有源码更好。
谢谢了!!

2楼: 作的自动更新的服务端软件,客户端启动后就和服务端通信,查询有更新没有,如有就更新处理 如汽配进销存

3楼: 我不会啊。新手,不好意思。有没有例子或者源码给看一下 ?拜托了!

4楼: 用版本控制方法呀。
或则用判断最后修改时间

5楼: 判断是不是新的无所谓,我现在想知道怎么更新过去?从一台机器到另一台机器?

6楼: 我讲一下我现在的实现方法,如果有更好的办法,也学习一下:
1、在服务器端设置一个目录,如果是需要支持非局域网内更新,则需要为这个目录做一个WEB虚拟目录
2、在SQL SERVER里设置一个表,用于保存文件的名称,更新的日期,大小,以及在软件项目中的目录位置等
3、做一个上传的工具,点击获取文件后,可以列出所有的程序文件,然后可以有选择性的上传已更新的文件。
4、做一个下载的工具,在软件启动时自动根据表里的文件更新日期及当前客户端的文件日期、大小等时进行比较,确定是否需要更新
5、将需要更新的文件从服务器上拷贝到本地。
注意点及存在的问题:
1、对于下载更新的工具模块,应不用提醒用户即可自动更新,以保证更新能顺利执行
2、应注意,如果单纯的比较更新日期,会存在一个问题,即如果客户端的系统时间不同步时,会导致同样的项目在两个文件的时间差范围内多次更新。所以应引入其他的比较内容,如文件大小等
3、对于文件的上传、下载,比较快的方式就是用以下函数实现
function DownloadFile(Source, Dest: string): Boolean;
Begin
try
Result := UrlDownloadToFile(nil, PChar(source), PChar(Dest), 0, nil) = 0;
except
Result := False;
end;
end;
如果客户端是以域用户方式登录的,则可以用\\计算机名\目录的方式下载文件,否则建议配置IIS中的虚拟目录,这样即可支持HTTP:\\方式下载文件。

以上即是我实现局域网内更新的方式,目前试用下来,未发现很大的问题。当然也希望大家能有更好的改进意见。

进销存管理软件版7楼: 谢了。先研究一下!!

8楼: 附:表的结构及其中的一行记录如下
字段名   字段内容
FileName Account.exe //文件的名称
AmendDate 2005-8-24 10:20:10 //最新版本的更新时间
ExtName .exe //文件的扩展名
SourcePos http://192.168.0.1/FtSoft //告诉下载工具文件的保存位置
SubPath //告诉下载工具文件目的相对位置,当然在此之前应先用ExtractFilePath得到绝对位置
FileSixe 3779584 //文件大小,也作为一个判断是否更新的标志
Version //软件的版本,也可作为一个辅助判断标志

9楼: 在delphi盒子上有自动更新的例子,很不错的

10楼: TO:delphilxh
有没有链接,给一个