2010-09-13 107 views
9

如何在C++中重新启动? WinSDK中有任何规定吗?我的程序(过程)必须做什么样的权利?如何以编程方式重新启动?

+0

我不建议你这样做。用户可能会讨厌它,如果系统重新启动,而没有他们自己做。 – 2010-09-13 05:31:18

+0

我会问我的用户之前,我这样做(保存你的东西等等,等等..)... – lalli 2010-09-13 05:32:28

回答

12

有可以做到这一点的ExitWindowsEx Function。您需要通过EWX_REBOOT(0x00000002)标志来重新启动系统。这里

重要提示(引自MSDN):

ExitWindowsEx功能一旦它发起的关机过程返回。关机或注销然后异步进行。该函数旨在阻止调用方的登录会话中的所有进程。因此,如果您不是交互式用户,则该功能可以成功,而不必实际关闭计算机。如果您不是交互式用户,请使用InitiateSystemShutdownInitiateSystemShutdownEx函数。

根据您的情况,您可以选择适当的功能。

+0

谢谢,我会继续与此。但是我对获取令牌和所有的东西感到困惑,你能建议任何链接去查看它吗? – lalli 2010-09-13 09:21:42

5

我认为你有一个非常好的情况,想要重新启动可能正在运行大量其他应用程序的PC。

这听起来像你在寻找InitiateShutdown(),在dwShutdownFlags通过SHUTDOWN_RESTART

相关问题