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 }

 

转载于:https://www.cnblogs.com/kingbin/p/4040112.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值