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

How to overwrite my currently running executable?

本文关键字:运行 可执行文件 何覆盖 覆盖      更新时间:2023-10-16

可能的重复项:
在 Windows Vista 上覆盖 C:\Program\MyProg 中的可执行文件

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

有点像自动更新?

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

原创节目:

  1. 启动一个小的"更新程序"程序
  2. 终止

更新程序:

  1. 等待原始终止。
  2. 将原件移开(例如重命名为".old")。
  3. 将新版本移动到位。
  4. 启动新版本。
  5. 终止。

这要安全得多,因为在新版本到位之前,您不会吹走旧版本。

  1. 复制它。
  2. 覆盖副本。
  3. 在运行程序退出之前,创建一个低优先级进程 女巫可以使用副本来填充原始文件。 比如"自动删除"。

无论如何,这是一个解决方案。我希望它会有所帮助。

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