Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1613053
  • 博文数量: 441
  • 博客积分: 20087
  • 博客等级: 上将
  • 技术积分: 3562
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-19 15:35
文章分类

全部博文(441)

文章存档

2014年(1)

2012年(1)

2011年(8)

2010年(16)

2009年(15)

2008年(152)

2007年(178)

2006年(70)

分类: C/C++

2006-12-29 17:37:25

                                      关机、注销、重启
 
DWORD dwVer = GetVersion();  // Version of OS
if (dwVer < 0x80000000 )
{
    HANDLE hToken;
    TOKEN_PRIVILEGES tkp;
 
    if ( !OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &hToken) )
          return;
   
    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(EWX_SHUTDOWN|EWX_FORCE, 0);        // shutdown
    // ExitWindowsEx(EWX_SHUTREBOOT | EWX_FORCE, 0); // reboot
    // ExitWindowsEx(EWX_POWEROFF | EWX_FORCE, 0);   // poweroff
    // ExitWindowsEx(EWX_LOGOFF | EWX_FORCE, 0);     // logoff
 }
else
{
    ExitWindowsEx(EWX_SHUTDOWN|EWX_FORCE, 0);        // shutdown
    // ExitWindowsEx(EWX_SHUTREBOOT | EWX_FORCE, 0); // reboot
    // ExitWindowsEx(EWX_POWEROFF | EWX_FORCE, 0);   // poweroff
    // ExitWindowsEx(EWX_LOGOFF | EWX_FORCE, 0);     // logoff
}
 
 
阅读(886) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~