vb 升级下载新的程序覆盖自身

来源:百度知道 编辑:UC知道 时间:2024/05/18 20:36:03
我想在vb一个工程里添加自动升级 下载新的程序的功能
程序运行时链接网站检测新本版
发现新版本时升级程序的窗体显示 主窗体隐藏
升级程序自动下载新的程序并显示进度,下载完毕后把自身的程序覆盖了

这里不太明白 应为程序是在运行中的,怎么在运行中把自身给覆盖呢?
下载Form_Unload里吗?
请高手指点下
用另外一个exe更新程序这种方法我已经实现了 就是不想再另外增加一个exe来专门更新

哪种都可以。反正必须要分离。只不过换个思路而已。别投机取巧。那是不可能的
一种是你主程序只有一个。就ok。也就是不需要更新程序.exe
原理就是利用下载完的程序打开它来更新覆盖。
现在网游一般都是这样。也有分离的。整个过程你都看不到是2个程序。文件也就一个。
二种就是一个更新。一个主程序。这种我以前用的。但要考虑到以后更新的这个程序还要更新。还是要覆盖的。所以慢慢改成另外的。

在我接触过的程序升级中,一般是自身先下载保存到临时目录,然后调用外部升级程序来进行覆盖、再启动等操作,这时也可以用批处理文件来执行。
应用程序在运行过程中,是无法覆盖自身的(操作系统更新后提示重启也是这个道理)。
以上建议,供参考。

没有试过,不过 可以说说 思路

下载 不难,可以 保存为 临时文件,同时 生成 一个 批处理 bat 文件

下载完毕,启动 这个 bat 文件,来 杀死 本来的 进程,并且 替换 掉 本来 的 文件,再 启动新文件

over

杀毒软件用过吧?更新的时候只要启动专门的更新程序,原程序结束自己就可以覆盖了嘛

自己检查新版本,自己下载,下载后复制两份,启动复制的其中一个程序,退出主程序。复制的程序删除主程序,复制复制2到主程序,启动主程序。退出复制1.升级完毕,新版本也启动了。
复制的时候,程序是检查文件名称的,通过名称确定状态,并不是完全为升级而制作的程序。