扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
控件 |
ID |
属性 |
Button1 | OnOK | “确定” |
Button2 | OnCancel | “取消” |
Radio1 | IDC_LOGOFF | “注消计算机” |
Radio2 | IDC_REBOOT | “重启计算机” |
Radio3 | IDC_SHUTDOWN | “关闭计算机” |
void CRebootDlg::OnLogoff() { // TODO: Add your control notification handler code here m_mark=0; } |
void CRebootDlg::OnCok() { // TODO: Add your control notification handler code here HANDLE hToken; TOKEN_PRIVILEGES tkp; DWORD dwVersion; //版本号 dwVersion = GetVersion(); //得到WINDOWS NT或Win32的版本号 switch(m_mark)//由接收单选项值进行相关操作 { case 0: ExitWindowsEx(EWX_LOGOFF,0); break; //注消操作 case 1: if(dwVersion < 0x80000000) { OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken); LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid); tkp.PrivilegeCount = 1; //设置权限 tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(hToken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0); ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE,0); } else //WIN系列其它系统 { ExitWindowsEx(EWX_FORCE | EWX_REBOOT,0); } break; //重启操作 case 2: if(dwVersion < 0x80000000)//用于判断WIN系列,从而设置相应的权限 { OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES |TOKEN_QUERY,&hToken); LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid); tkp.PrivilegeCount = 1; tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(hToken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0); ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE,0); } else { ExitWindowsEx(EWX_FORCE | EWX_SHUTDOWN ,0); } break;//关闭计算机 } } |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者