VC 强制重启电脑的方法

BOOL RestartWindows()
{
HANDLE   hToken;
TOKEN_PRIVILEGES   tkp;
//获取系统信息
OSVERSIONINFO   osvi;
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
if( GetVersionEx( &osvi ) == 0 ) return FALSE;

if( !OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &hToken ) ) return FALSE;
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1;     //   one   privilege   to   set
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges( hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL,0);
ExitWindowsEx(EWX_REBOOT|EWX_FORCEIFHUNG,   0);
return TRUE;
}

相关内容可查询:http://baike.baidu.com/view/1304692.htm

你可能感兴趣的:(null,query,token)