现在正在做一个功能,如下:运行着的进程取名为Old.exe ,需要从指定URL下载更新包,是一个exe文件,取名 New.exe。
然后自动退出目前的程序Old.exe, 删除Old.exe  ,之后将新下载的 New.exe 改名为 Old.exe 。最后启动New.exe(即改名后的Old.exe)。请问怎么实现???自己本来的做法是在原进程中新建了一个批处理,写入 改名操作,删除操作,然后通过ShellExecute()运行这个批处理。可是每次运行后,确实新建了批处理,但是没有执行,也根本没改名。换成CreateProcess()执行这个批处理也不行。
但是退出后,双击运行批处理是可以改名的。所以想问一下,一般情况下的程序自动更新重启是怎么实现的呢?

解决方案 »

  1.   

    并且经过调试发现。每次新建并写入 bat 之后,在 ShellExecute 后有 GetLastError() == 2的错误。 为什么呢
      

  2.   

    GetLastError() == 2 的问题解决了自己搞错了路径还是想请问一下:一般情况下的程序自动更新重启是怎么实现的呢?应该不是用批处理的把
      

  3.   

    在匹处理等待一段时间,在这段时间内,让old.exe程序自己退出。之后匹处理在执行改名,运行exe操作。
      

  4.   

    很多都有单独的update.exe负责更新重启。匹处理也可以..