我有一个C ++ exe;在特定情况下,我需要停止exe并再次启动它。这必须在同一个exe内完成,而不是从外部完成。实现这一目标的最佳方法是什么?
我的猜测是启动进程的新实例,然后终止正在运行的进程。但有没有任何直接的API来执行此操作,如RestartProcess()或其他什么?如果不是你的建议么?
答案 0 :(得分:5)
不,没有这样的内置方法。你真的必须检测可执行文件的路径(GetCurrentModule(),然后是GetModuleFileName()),运行新进程(CreateProcess()),然后退出当前进程(ExitProcess())。
答案 1 :(得分:1)
使用标准exec功能。它运行程序并且不返回,实际上用新的程序替换当前运行的程序。