2010-09-13 109 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

相關問題