Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2341275
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:07:41

void ShutDownWindows(unsigned int iOpt) //EWX_POWEROFF, EWX_REBOOT, EWX_LOGOFF, EWX_FORCE, EWX_SHUTDOWN
{
  OSVERSIONINFO ovi;
  ovi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
  if(GetVersionEx(&ovi))
   {
     if(ovi.dwPlatformId == VER_PLATFORM_WIN32_NT)
      {
        HANDLE hToken;
        TOKEN_PRIVILEGES tkp;
        if(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, NULL, 0);
         }
      }
   }
  ExitWindowsEx(iOpt,0); //执行选择的命令
}

调用上面函数 ShutDownWindows(EWX_POWEROFF|EWX_SHUTDOWN);

--------------------next---------------------

阅读(1100) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~