2009-07-29 85 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函數。它運行一個程序並且不返回,實際上用新的程序替換當前正在運行的程序。