比如我的执行文件是 acdc3224.exe ,它正在运行。
然后通过acdc3224.exe内置的自动更新功能,
提示要从服务器上下载了一个最新版本执行文件 acdc3224.exe,
如何下载文件好说,我已经解决。而问题是,下载的时候我肯定不能下载
把下载文件下载到和执行程序同一目录下。因为 acdc3224.exe正在运行,
而你下载一个新acdc3224.exe时,肯定会出现冲突。这种情况在复制粘贴时,
经常发生。
所以我是这样考虑的,现把 新acdc3224.exe 下载到一个目录updata里面,
就像金山毒霸一样。但怎样把最新的文件复制出来呢?有点郁闷~ 大家来讨论。
然后通过acdc3224.exe内置的自动更新功能,
提示要从服务器上下载了一个最新版本执行文件 acdc3224.exe,
如何下载文件好说,我已经解决。而问题是,下载的时候我肯定不能下载
把下载文件下载到和执行程序同一目录下。因为 acdc3224.exe正在运行,
而你下载一个新acdc3224.exe时,肯定会出现冲突。这种情况在复制粘贴时,
经常发生。
所以我是这样考虑的,现把 新acdc3224.exe 下载到一个目录updata里面,
就像金山毒霸一样。但怎样把最新的文件复制出来呢?有点郁闷~ 大家来讨论。
解决方案 »
- 各位大哥帮忙啊:MFC两个窗体类中,不能使用全局成员变量??
- 再问监听,如何做到ARP欺骗
- MFC程序怎么样能获取一个网页的内容呢?要用哪些API?
- 我如何知道当前的server与多少个client建立了连接
- 请问怎样改变一个对话框的大小?
- 急问VCM编程
- 浏览器中转动的地球,如何做,我这里有个例子是放在工具栏的,但我想放在菜单栏,如何改?谢谢
- 请教用ADO得到的字段值为VT_NULL,如果用if()语句进行判断,应怎么写?
- "泛型"是什么?有没有这方面资料?我想拿下来看看,谢!
- $$$$$如何在CDOCUMENT中获得CMAINFRAME的指针???????
- 请问 我createx一个工具条 成功了 但是后面loadtoolbar 返回FALSE 为什么啊?
- [out]int* 和 [in]int* 有什么区别? 狂急!!!!!!!!!
用另外的exe来完成更新,先下载,然后关闭acdc3224.exe,然后覆盖acdc3224.exe,然后再运行如果是更新update.exe,那么可能这样行:退出前写一个.bat(内容是执行更新,然后重新启动update.exe)之类的,然后退出update.exe的同时运行这个.bat(用shellexecute,handle用0).
这问题据说可以有这么几种方法解决1
下载到updata文件夹中,然后用copy函数(api),中间有一个boolean标志,可以表示是直接覆盖原来文件,还是不进行操作2
打开程序运行的时候,判断在这个updata目录下是否有版本更新的程序,如果有,关闭这个版本低的程序,而调用那个版本高的程序。然后在版本高的程序退出的时候,把自身复制到安装目录下3
可以复制到一个地方,然后先删除源文件,再copy过去后重新命名
然后我用一个updata的EXE程序,用来检测更新。对于一般的文件,就是copyfile就OK了,如果是正在运行的这个acdc3224.exe程序,可以使用MoveFileEx这个函数。这个函数可以在Windows重新启动时更新指定文件。如果也不允许重新启动的话,那么也就只有上面提到的那个bat了
(如果发现被更新的文件正在使用,则将源文件复制到一个临时文件,并建立一个acdc3224.bat文件。在程序结束时运行这个bat文件,完成对这些正在使用的文件的更新)
毒霸就是写Autoexec.bat文件。
然后提示我们重启系统。