首页 > 代码库 > mfc关机函数
mfc关机函数
1 //关机函数 2 BOOL CShutdownDlg::SystemShutdown(void){ 3 HANDLE hToken; 4 TOKEN_PRIVILEGES tkp;//设置访问特权变量 5 //OpenProcessToken 获取进程的访问令牌 6 if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY,&hToken)) 7 { 8 MessageBox("获取访问令牌失败!"); 9 return FALSE; 10 } 11 // LookupPrivilegeValue查看系统的特权值 12 LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid); 13 tkp.PrivilegeCount = 1; // 指定特权数组个数1 14 tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;//启用特权 15 // AdjustTokenPrivileges的作用是通知Windows NT修改本进程的权利 16 AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES)NULL, 0);//启用当前访问令牌的特权 17 if (GetLastError() != ERROR_SUCCESS) //失败 18 { 19 MessageBox("获取权限失败!"); 20 return FALSE; 21 } 22 if (!ExitWindowsEx(EWX_SHUTDOWN, 0)) //参数在这里设置。EWX_SHUTDOWN 为正常关机,强行退出为WINDOWSEWX_FORCE。 23 return FALSE; 24 return TRUE; 25 }
mfc关机函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。