函式原型:
BOOL ExitWindowsEx(
UINT uFlags, // 關閉參數
DWORD dwReserved // 系統保留,一般取0
);
參數:uFlags
指定關閉的類型。此參數必須有下列值的組合:
1.EWX_FORCE
強制終止進程。當此標誌設定,Windows不會傳送訊息WM_QUERYENDSESSION和WM_ENDSESSION的訊息給目前在系統中運行的程式。這可能會導致應用程式丟失數據。因此,你應該只在緊急情況下使用此標誌。
2.EWX_LOGOFF
關閉所有進程,然後註銷用戶。
3.EWX_POWEROFF
關閉系統並關閉電源。該系統必須支持斷電。
Windows要求:
Windows NT中調用進程必須有 SE_SHUTDOWN_NAME 特權。
Windows 9x中:可以直接調用。
4.EWX_REBOOT
關閉系統,然後重新啟動系統。
Windows要求:
Windows NT中:調用進程必須有SE_SHUTDOWN_NAME特權。
Windows 9X中:可以直接調用。
5.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;
}
相關詞條
-
ExitWindowsEx
ExitWindowsEx,是Windows關機函式,用來退出、重啟或註銷系統。
-
CodeRed II
的 ExitWindowsEx。主執行緒將檢查兩個不同的標記符。第一個標記符“29A”控制...
簡介 分發 -
CodeRed.F
ExitWindowsEx,用於重新啟動系統。檢查主執行緒檢查兩個不同的標記符:1....
基本資料 防護 威脅評估 感染 檢查 -
API函式
API概述定義作為一個編程初學者來說,API函式也許是一個時常耳聞卻感覺有些神秘的東西。單看它複雜的語法,就足令人望而生畏,但是...
API概述 函式大全 Escape 設備 內部函式 運算函式 -
冰河木馬
,使用WinAPI中的如下函式可以實現:ExitWindowsEx...
具體功能 清除方法 冰河木馬原理 隱蔽啟動 相關內容 -
冰河(木馬)
具體功能該軟體主要用於遠程監控,具體功能包括:1.自動跟蹤目標機螢幕變化,同時可以完全模擬鍵盤及滑鼠輸入,即在同步被控端螢幕變化...
具體功能 清除方法 識別木馬 簡單防治 原理 -
紅碼變種Codered.F蠕蟲
等,在從User32.dll中調用ExitWindowsEx函式以便...
簡介 病毒詳細技術分析 蠕蟲的主執行緒檢查兩個標識 蠕蟲手工解決辦法 解決方案 -
WindowsAPI函式清單
WindowsAPI簡介:API的英文全稱(Application Programming Interface),WIN32 A...
WindowsAPI簡介: API函式清單: -
NtShutdownSystem
ExitWindowsEx()進行正常關機。 ...
函式介紹 參數 使用方法 備註