MFC关机函数

void CSqlConTestDlg::ReBootSys()

{

         static HANDLE hToken;

         static TOKEN_PRIVILEGES tp;

         static LUID luid;

 

         OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &hToken);

         LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME, & luid);

         tp.PrivilegeCount = 1;

         tp.Privileges[0].Luid = luid;

         tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

 

         AdjustTokenPrivileges(hToken,FALSE,&tp,sizeof(TOKEN_PRIVILEGES),NULL,NULL);

         CloseHandle(hToken);

         ExitWindowsEx(EWX_REBOOT,0);

}

posted @ 2016-07-23 23:03  Zohar  阅读(595)  评论(0编辑  收藏  举报