Chinaunix首页 | 论坛 | 博客
  • 博客访问: 86146
  • 博文数量: 21
  • 博客积分: 766
  • 博客等级: 军士长
  • 技术积分: 185
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-29 10:27
文章分类

全部博文(21)

文章存档

2012年(5)

2010年(10)

2009年(6)

我的朋友

分类: WINDOWS

2012-02-23 00:00:00

1、记得要加入头文件:#include
2、代码
bool MainForm::shutDownSystem()
{
    HANDLE hToken;
    TOKEN_PRIVILEGES tkp;
    //获取进程标志
        if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
            return false;
        //获取关机特权的LUID
        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);
        if (GetLastError() != ERROR_SUCCESS) return false;
        // 强制关闭计算机
        //if (  !ExitWindow***(EWX_SHUTDOWN | EWX_FORCE,
            // SHTDN_REASON_MAJOR_OPERATINGSYSTEM | SHTDN_REASON_MINOR_UPGRADE |  SHTDN_REASON_FLAG_PLANNED))
        if (  !ExitWindow***(EWX_REBOOT | EWX_FORCE, 0))
             return false;
        return true;
}
阅读(3679) | 评论(2) | 转发(1) |
0

上一篇:QT QTableWidget 用法总结

下一篇:没有了

给主人留下些什么吧!~~

虾米小2012-02-24 07:08:48

哇塞!这个需要权限的吧~

sodwell2012-02-23 19:13:43

打星号的其实是ExitWindow***,真是奇怪,乱码。。