ExitWindowsEx
The ExitWindowsEx function either logs off the current user, shuts down the system, or shuts down and restarts the system. It sends the WM_QUERYENDSESSION message to all applications to determine if they can be terminated.
BOOL ExitWindowsEx(
UINT uFlags,
DWORD dwReason
);
uFlags
示例:
The following example enables the SE_SHUTDOWN_NAME privilege and then shuts down the system.
BOOL MySystemShutdown()
...
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
// Get a token for this process.
if (!OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
return( FALSE );
// Get the LUID for the shutdown privilege.
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,
&tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1; // one privilege to set
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
// Get the shutdown privilege for this process.
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
(PTOKEN_PRIVILEGES)NULL, 0);
if (GetLastError() != ERROR_SUCCESS)
return FALSE;
// Shut down the system and force all applications to close.
if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0))
return FALSE; 
return TRUE;
}
注意,如果不实现设置权限 会导致调用失败。
本文介绍Windows API中的ExitWindowsEx函数,该函数用于注销当前用户、关闭系统或重启系统。文章详细解释了函数参数uFlags和dwReason的作用,并提供了一个使用示例。
1749





