如何在C++中重新启动? WinSDK中有任何规定吗?我的程序(过程)必须做什么样的权利?如何以编程方式重新启动?
9
A
回答
12
有可以做到这一点的ExitWindowsEx Function。您需要通过EWX_REBOOT(0x00000002)标志来重新启动系统。这里
重要提示(引自MSDN):
的ExitWindowsEx功能一旦它发起的关机过程返回。关机或注销然后异步进行。该函数旨在阻止调用方的登录会话中的所有进程。因此,如果您不是交互式用户,则该功能可以成功,而不必实际关闭计算机。如果您不是交互式用户,请使用InitiateSystemShutdown或InitiateSystemShutdownEx函数。
根据您的情况,您可以选择适当的功能。
+0
谢谢,我会继续与此。但是我对获取令牌和所有的东西感到困惑,你能建议任何链接去查看它吗? – lalli 2010-09-13 09:21:42
5
我认为你有一个非常好的情况,想要重新启动可能正在运行大量其他应用程序的PC。
这听起来像你在寻找InitiateShutdown()
,在dwShutdownFlags
通过SHUTDOWN_RESTART
。
8
调用ExitWindowsEx功能之前,您需要enable的SE_SHUTDOWN_NAME privilege:
- OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,...)
- LookupPrivilegeValue
- AdjustTokenPrivileges
- CloseHandle的
相关问题
- 1. 如何以编程方式重新启动java web启动应用程序
- 2. 如何以编程方式重新启动Azure Web App
- 3. 如何以编程方式重新启动jar?
- 4. 如何以编程方式重新启动WAMP或Apache?
- 5. 如何以编程方式重新启动Finder?
- 6. 如何以编程方式启动PhoneStateListener?
- 7. 如何以编程方式启动.pdf?
- 8. 如何以编程方式启动Django
- 9. 以编程方式刷新/重新启动当前Tomcat实例
- 10. 以编程方式重新启动应用程序?
- 11. 以编程方式重新启动应用程序崩溃
- 12. 如何在Android中崩溃时以编程方式重新启动/重新启动应用程序?
- 13. 如何以编程方式重新启动iOS中的iPhone应用程序
- 14. 以编程方式重新启动Windows 7计算机
- 15. 以编程方式重新启动IIS7(C#)
- 16. 以编程方式重新启动Azure VM角色(PaaS VM)
- 17. Bluecove:以编程方式重新启动蓝牙堆栈
- 18. 以编程方式重新启动Azure上的Web/Api-App
- 19. 以编程方式重新启动Windows服务
- 20. 以编程方式重新启动Windows中的USB设备
- 21. 以编程方式重新启动android设备
- 22. 是否有意思以编程方式重新启动WinCE 5.0?
- 23. 以编程方式重新启动Android Studio
- 24. 以编程方式重新启动sql server是win7
- 25. 如何以编程方式检查EC2实例是否完成重新启动?
- 26. 如何重新启动我的窗口服务以编程方式在c#.net
- 27. 如何以编程方式重新启动不越狱的iOS设备?
- 28. 如何在iOS中以编程方式重新启动或重新加载iPhone应用程序
- 29. 重新启动BlackBerry编程
- 30. 以编程方式启动Scala REPL?
我不建议你这样做。用户可能会讨厌它,如果系统重新启动,而没有他们自己做。 – 2010-09-13 05:31:18
我会问我的用户之前,我这样做(保存你的东西等等,等等..)... – lalli 2010-09-13 05:32:28