2

在我正在处理的一个 Windows 项目中,我打算有一个完全重新启动应用程序的菜单选择。是否有执行此操作的 Windows 或 C++ 函数?

4

6 回答 6

3

没有内置的,但设计良好的应用程序可以简单地停止正在发生的一切,然后循环回到开始。如果你想要一个真正的“新开始”,你将不得不产生一个新进程(可能是你在旧进程关闭之前做的最后一件事。)

于 2009-09-22T22:21:06.860 回答
2

不,你必须自己做。例如,您可以运行外部进程,该进程将等到您退出应用程序,然后再次运行它。

于 2009-09-22T22:22:18.777 回答
1

实际上,您可能想看看 Windows Vista 附带的 Restart Manager API。与以往一样,您可以在Visual C++ 2010中根据您的内心内容和他们对它的明确支持来调用它。

于 2009-09-23T04:50:18.897 回答
0

已经需要这样做了。无需进一步阅读的最简单方法是编写一个简单的 .bat 文件(手动或由您的应用程序动态地)启动您的程序,然后从您的应用程序中调用该 bat 文件。

bat 文件甚至可能包含一行在启动您的应用程序后自行删除...

于 2009-09-22T22:37:30.633 回答
0

您想调用CreateProcess ,然后使用ExitProcess()优雅地关闭应用程序的当前实例,或者如果您链接到 C 运行时,只需从 main() 返回。但首先你应该问自己为什么首先需要重新创建流程。

于 2009-09-23T04:44:13.837 回答
-3

ExitWindowsEx 是你想要的。您还可以运行Windows 内置的shutdown.exe实用程序。

shutdown -t0 -r (restart the system after 0 seconds)
于 2009-09-22T22:20:34.247 回答