vc 关闭重启注销

Posted nnsword

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vc 关闭重启注销相关的知识,希望对你有一定的参考价值。

  1. void CXMOperComputerDlg::OnBtnLogout() 
  2.     // TODO: Add your control notification handler code here
  3.     HANDLE htoken;
  4.     TOKEN_PRIVILEGES tkp;
  5.     //获得进程标识
  6.     if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&htoken))
  7.     
  8.         MessageBox("打开进程成功");
  9.     
  10.     //获得关闭优先权 LUID
  11.     LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);
  12.     tkp.PrivilegeCount=1;//设置一个优先权
  13.     tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
  14.     //获得关闭进程的优先权
  15.     AdjustTokenPrivileges(htoken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0);
  16.     if (GetLastError()!=ERROR_SUCCESS)
  17.     
  18.         MessageBox("获得关闭进程优先权成功");
  19.     
  20.     if (!ExitWindowsEx(EWX_LOGOFF,0))
  21.     
  22.         MessageBox("注销");
  23.     
  24. void CXMOperComputerDlg::OnBtnreset() 
  25.     // TODO: Add your control notification handler code here
  26.     HANDLE htoken;
  27.     TOKEN_PRIVILEGES tkp;
  28.     //获得进程标识
  29.     if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&htoken))
  30.     
  31.         MessageBox("打开进程成功");
  32.     
  33.     //获得关闭优先权 LUID
  34.     LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);
  35.     tkp.PrivilegeCount=1;//设置一个优先权
  36.     tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
  37.     
  38.     //获得关闭进程的优先权
  39.     AdjustTokenPrivileges(htoken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0);
  40.     
  41.     if (GetLastError()!=ERROR_SUCCESS)
  42.     
  43.         MessageBox("获得关闭进程优先权成功");
  44.     
  45.     
  46.     if (!ExitWindowsEx(EWX_REBOOT,0))
  47.     
  48.         MessageBox("重启计算机");
  49.     
  50. void CXMOperComputerDlg::OnBtnShutpc() 
  51.     // TODO: Add your control notification handler code here
  52.     HANDLE htoken;
  53.     TOKEN_PRIVILEGES tkp;
  54.     //获得进程标识
  55.     if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&htoken))
  56.     
  57.         MessageBox("打开进程成功");
  58.     
  59.     //获得关闭优先权 LUID
  60.     LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);
  61.     tkp.PrivilegeCount=1;//设置一个优先权
  62.     tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
  63.     
  64.     //获得关闭进程的优先权
  65.     AdjustTokenPrivileges(htoken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0);
  66.     
  67.     if (GetLastError()!=ERROR_SUCCESS)
  68.     
  69.         MessageBox("获得关闭进程优先权成功");
  70.     
  71.     
  72.     if (!ExitWindowsEx(EWX_SHUTDOWN|EWX_FORCE,0))
  73.     
  74.         MessageBox("关闭计算机");
  75.     

以上是关于vc 关闭重启注销的主要内容,如果未能解决你的问题,请参考以下文章

Linux基础命令之关机,重启,注销

Linux基础命令之关机、重启、注销命令

马上重启,关机,注销,批处理应该怎么写?

Linux中关机,重启,注销命令

Linux中关机,重启,注销命令

四开机重启和用户登录注销