回 帖 发 新 帖 刷新版面

主题:关于升级程序的编写

想实现这样的升级功能:

当在系统中(假定该文件为A.exe)点击“升级”按钮旹,自动打开另一个EXE文件(假定为B.EXE),然后由B文件去网上检测A是否有更新,如果检测到,则自动下载并在下载结束后自动终止A.exe进程,以完成升级。

问题:

1.如何让B检测远程网址中的a.exe是否有更新?这儿需要解决的问题有两个:一是是否存在该远程主机文件,而是该文件的版本号如何获取?

2.如何在B.exe将A的升级文件下载完成后自动终止A.EXE当前的进程?

望高手指教,不胜感谢!

回复列表 (共3个回复)

沙发

在线升级升到一半时断电呢?或通讯中断呢?对于数据库应用系统,我认为还是发程序包方式好些!

板凳

问题已经成功解决,主要思路如下:

另外编制一个专用于升级的EXE文件,由它负责检查另一个EXE是否有升级程序,如果有并下载并覆盖
,如果升级到一半停电、断网或其他不可靠因素造成原始EXE被破坏,用户只需要重新运行该升级工具即可。

该升级EXE即可独立运行,也可通过原始EXE调用;“升级EXE文件工具”需要在检查到有新版本之后立即终止原始EXE的进程,以便完成覆盖。这些都是要解决的。

关于版本号的获取方法请参看另一帖子:如何从文件版本中分离出各段数字?

3 楼

[quote]
...如果升级到一半停电、断网或其他不可靠因素造成原始EXE被破坏,...
[/quote]
我的意思是:如果升级的还有数据库及数据表文件,很多时候不只是升级EXE文件,单单是升级EXE文件容易得多!未完全下载就不进行解包即可!

我来回复

您尚未登录,请登录后再回复。点此登录或注册