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;
}