如何自动更新可执行程序?
是这样的:
可执行程序myapp.exe放在C:\abc下面,然后运行它
当C:\下存在myapp.exe时,说明有新的程序存在,需要做到一下三点:
1,结束当前正在运行的myapp.exe
2,把C:\myapp.exe复制到C:\abc\,并且重新运行C:\abc\myapp.exe
3,删除C:\myapp.exe
注:以上必须由myapp.exe自动识别C:\并作出相应的执行
[解决办法]
...........................................
[解决办法]
我原来有发过类似的贴子,你找找看。
[解决办法]
用shell来执行Update.exe文件
在Update中查找myapp.exe不行吗?
[解决办法]
我觉得应该中间用一个 中介程序,或者用多线程 否则无解
[解决办法]
即便多线成的话,软件正在运行,你也没有权利覆盖,或者删除此文件
把C:\myapp.exe复制到C:\abc\,这个功能, 必须要使用外加程序
不知道还有好办法么???
[解决办法]
软件运行的时候,是可以剪切到别的地方去的····
剩下的你就自己想吧····
[解决办法]
剪切到同个分区的另外一个目录
剪切到其他分区的时候会变成复制···
[解决办法]
方法一 系统中分几个模块:
其一 启动程序,一旦写成不再更改,调用更新模块
其二 更新模块,检查是否有更新,更新完成后关闭此模块,启动登录模块
其三 登录模块
其四 主运行模块
启动程序必须是EXE文件,其他可以是DLL或是EXE均可。
方法二 自动转换方法
其一 主程序运行,查询有没有更新,如果更新的内容不是主程序,也不是更新程序,自动更新就行了
其二 如果有更新程序存在,关闭更新程序,由主程序调用进行更新
其三 如果有主程序更新,关闭主程序,交给更新程序处理
其四 如果此两个程序均要更新,就先更新其中一个再更新另一个
这里面的主要思路是个逻辑关系,想想就有办法了。但可能中间要生成一个配置文件进行数据交换,以便先运行的程序关闭时可以有参数交换。具体的较为繁琐。最好是第一种方法
以上程序均要是EXE文件
[解决办法]
用批处理文件!
在myapp.exe退出前写一个批处理文件tmp.bat,然后执行,
tmp.bat
-----------
@echo off
:l
del "C:\abc\myapp.exe "
if exist "C:\abc\myapp.exe " goto l
copy "C:\myapp.exe " "C:\abc\myapp.exe "
C:\abc\myapp.exe
-----
随手写的,大体上是这样的,没测试