如何覆盖我当前运行的可执行文件?

时间:2012-05-11 13:21:39

标签: c++ windows

  

可能重复:
  Overwrite executable in C:\Program\MyProg on Windows Vista

我有一个用C ++编写的应用程序。它正在运行。如何让它覆盖自己的exe文件,以便在下次启动时它将是一个新的exe?

有点像自动更新?

3 个答案:

答案 0 :(得分:2)

这在实践中没有完成。通常做的是:

原创计划:

  1. 启动一个小型“更新程序”程序
  2. 终止
  3. 更新程序:

    1. 等待原件终止。
    2. 将原件移开(例如重命名为“.old”)。
    3. 将新版本移动到位。
    4. 启动新版本。
    5. 终止。
    6. 这远远更安全,因为在新版本到位之前你不会吹走旧版本。

答案 1 :(得分:0)

  1. 复制它。
  2. 覆盖副本。
  3. 在运行prog退出之前,创建一个低优先级进程,可以使用该副本来补充原始文件。比如“自动删除”。
  4. 无论如何,这是一个解决方案。我希望它会有所帮助。

答案 2 :(得分:0)

如果您可以控制正在运行的进程(这是您的程序,并且您可以让它知道),您应该能够解锁它以便可以覆盖它,如果不是您最好的选择是终止并重新启动它如上所述