關機,登出,重啟函數:ExitWindowsEx

來源:互聯網
上載者:User

概況ExitWindowsEX()函數用來退出、重啟或登出系統。編輯本段函數原型BOOL ExitWindowsEx(UINT uFlags, // 關閉參數DWORD dwReserved // 系統保留,一般取0);編輯本段參數uFlags指定關閉的類型。此參數必須有下列值的組合: EWX_FORCE強制終止進程。當此標誌設定,Windows不會發送訊息WM_QUERYENDSESSION和WM_ENDSESSION的訊息給目前在系統中啟動並執行程式。這可能會導致應用程式遺失資料。因此,你應該只在緊急情況下使用此標誌。 EWX_LOGOFF關閉所有進程,然後登出使用者。 EWX_POWEROFF關閉系統並關閉電源。該系統必須支援斷電。Windows要求:Windows NT中調用進程必須有 SE_SHUTDOWN_NAME 特權。Windows 9X中:可以直接調用。 EWX_REBOOT關閉系統,然後重新啟動系統。Windows要求:Windows NT中:調用進程必須有SE_SHUTDOWN_NAME特權。Windows 9X中:可以直接調用。 EWX_SHUTDOWN關閉系統,安全地關閉電源。所有檔案緩衝區已經重新整理到磁碟上,所有正在啟動並執行進程已經停止。Windows要求:Windows NT中:調用進程必須有SE_SHUTDOWN_NAME特權。Windows 9X中:可以直接調用。dwReserved系統保留,這參數被忽略。一般取0。傳回值如果函數成功,傳回值為非零。如果函數失敗,傳回值是零。想獲得更多錯誤資訊,請調用GetLastError函數。編輯本段備忘ExitWindowsEx函數返回後,啟動了關閉。關閉或登出。在關機或登入操作中,應用程式在允許關閉的時間具體數額內回應關機請求。如果時間到期時,Windows會顯示一個對話方塊,允許使用者強行關閉應用程式:關閉、重試,或取消關機要求。如果存在EWX_FORCE指定值,Windows會關閉應用程式而不顯示該對話方塊。Windows NT中:關閉或重新啟動系統,調用進程必須使用AdjustTokenPrivileges函數使SE_SHUTDOWN_NAME特權。Windows
95中:安全特權,不支援或需要。編輯本段例子Windows 9X:ExitWindowsEx(EWX_SHUTDOWN, 0); //關閉系統ExitWindowsEx(EWX_REBOOT, 0); //重啟系統Windows NT/2000/XP:以下給出一個函數如果不是MFC,加入以下語句在該函數之前#define BOOL int#define TRUE 1#define FALSE 0如果是,直接加入BOOL SystemShutdown(){HANDLE hToken;TOKEN_PRIVILEGES tkp;/* OpenProcessToken() 這個函數的作用是開啟一個進程的存取權杖GetCurrentProcess() 函數的作用是得到本進程的控制代碼*/if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY,&hToken))return FALSE;// LookupPrivilegeValue() 的作用是修改進程的許可權LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);tkp.PrivilegeCount = 1; // one privilege to set 賦給本進程特權tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;// AdjustTokenPrivileges()的作用是通知Windows NT修改本進程的權利AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES)NULL, 0);if (GetLastError() != ERROR_SUCCESS) //失敗return FALSE;if (!ExitWindowsEx(EWX_POWEROFF | EWX_FORCE, 0)) //參數在這裡設定。強行退出WINDOWS(EWX_FORCE)。return FALSE;return TRUE;}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.