在Windows中重新启动进程[exe]

时间:2009-07-29 11:18:08

标签: c++ winapi

我有一个C ++ exe;在特定情况下,我需要停止exe并再次启动它。这必须在同一个exe内完成,而不是从外部完成。实现这一目标的最佳方法是什么?

我的猜测是启动进程的新实例,然后终止正在运行的进程。但有没有任何直接的API来执行此操作,如RestartProcess()或其他什么?如果不是你的建议么?

2 个答案:

答案 0 :(得分:5)

不,没有这样的内置方法。你真的必须检测可执行文件的路径(GetCurrentModule(),然后是GetModuleFileName()),运行新进程(CreateProcess()),然后退出当前进程(ExitProcess())。

答案 1 :(得分:1)

使用标准exec功能。它运行程序并且不返回,实际上用新的程序替换当前运行的程序。