2009-07-29 161 views
2

我有一个C++ exe文件;在特定情况下,我需要停止exe并重新启动它。这必须在同一个exe中完成,而不是从外部完成。达到此目的的最佳方法是什么?在Windows中重新启动进程[exe]

我的猜测是启动进程的新实例,然后杀死正在运行的进程。但有没有任何直接的API来做到这一点,如RestartProcess()或其他?如果不是,你建议什么?

+0

嘿生锈,只是出于兴趣,你为什么使这个社区维基? – andy 2009-07-29 11:20:55

回答

5

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

1

使用标准exec函数。它运行一个程序并且不返回,实际上用新的程序替换当前正在运行的程序。