3

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

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

有点像自动更新?

4

3 回答 3

2

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

原程序:

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

更新程序:

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

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

于 2012-05-11T13:40:48.463 回答
0
  1. 复制它。
  2. 覆盖副本。
  3. 在运行 prog 退出之前,创建一个低优先级进程,女巫可以使用副本替换原始进程。比如“自动删除”。

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

于 2012-05-11T13:41:10.360 回答
0

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

于 2012-05-11T14:09:39.363 回答