在xp下的关机和重启api函数是什么?ExitWindows和ExitWindowsEx都不行 :(

解决方案 »

  1.   

    //EWX_LOGOFF,EWX_POWEROFF,EWX_REBOOT,EWX_SHUTDOWN
    //EWX_FORCE,EWX_FORCEIFHUNG
    BOOL ShutDownWindows(UINT t)
    {
      OSVERSIONINFO osv;  //定义一个操作系统信息的结构体
    osv.dwOSVersionInfoSize=sizeof OSVERSIONINFO;
    GetVersionEx(&osv);   //查询当前操作系统
      if(osv.dwPlatformId==VER_PLATFORM_WIN32_NT)  //判断是否是2000/NT
    {
      //下面为向操作系统获取权限操作
    HANDLE hProcess,hToken;
    TOKEN_PRIVILEGES Privileges;
    LUID luid;
    hProcess=GetCurrentProcess();
    //下面为打开当前进程对话
    OpenProcessToken(hProcess,TOKEN_ADJUST_PRIVILEGES,&hToken);
    Privileges.PrivilegeCount=1;
    LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&luid);
    Privileges.Privileges[0].Luid=luid;
    Privileges.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
    AdjustTokenPrivileges(hToken,FALSE,&Privileges,NULL,NULL,NULL);
    ExitWindowsEx(t,0);
    }
    else
    {
    ExitWindowsEx(t,0);//调用ExitWindowsEx关闭机器。 
    PostQuitMessage(0);
    }
    return true;
    }