ExitWindowsEx(EWX_SHUTDOWN|EWX_FORCE,5000);//关机 WM_QUERYENDSESSIONExitWindowsEx(EWX_REBOOT|EWX_FORCE,1000);//重新启动 WM_QUERYENDSESSIONExitWindowsEx(EWX_LOGOFF|EWX_FORCE,1);//注销 WM_QUERYENDSESSIONExitWindowsEx(EWX_POWEROFF|EWX_FORCE,1000);//等待 WM_QUERYENDSESSION以上只有『ExitWindowsEx(EWX_LOGOFF|EWX_FORCE,1);//注销』函数能正常工作
请问:其他三个为什么不能正常工作呢;我使用的系统是WindowNT 2000
请问:其他三个为什么不能正常工作呢;我使用的系统是WindowNT 2000
void ShutDown()
{ if (dwVersion < 0x80000000)
{
TOKEN_PRIVILEGES tkp,tkpnewbutignored;
HANDLE hdltokenhandle;
LUID tmpluid;
BOOL rc;
DWORD lbufferneeded;
HANDLE hdlprocesshandle = GetCurrentProcess();
rc = OpenProcessToken(hdlprocesshandle,TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &hdltokenhandle);
rc = LookupPrivilegeValue("","SeShutdownPrivilege", &tmpluid);
tkp.PrivilegeCount = 1; // one privilege to set
tkp.Privileges[0].Luid = tmpluid;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
rc = AdjustTokenPrivileges(hdltokenhandle,FALSE,&tkp,sizeof(tkpnewbutignored),&tkpnewbutignored, &lbufferneeded);
ExitWindowsEx(EWX_SHUTDOWN|EWX_FORCE, 0);
}
else
{
ExitWindowsEx(EWX_SHUTDOWN,0);
}
}