同上

解决方案 »

  1.   

    TTime+關機函數
    自己找一下看看
      

  2.   

    使用BOOL SetWindowExtEx就可以了。
      

  3.   

    程序中设个定时器,关机代码如下BOOL MyExitWindowsEx(UINT uFlag)
    {
     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(uFlag,0);
    }
      

  4.   

    //--------------------------------------------
    win2000关机代码:var
      VerInfo: TOSVersionInfo;
      hToken: THANDLE;
      tkp: TOKEN_PRIVILEGES;
      Nothing: Cardinal;
    begin
      VerInfo.dwOSVersionInfoSize := SizeOf(VerInfo);
      GetVersionEx(VerInfo);
        if VerInfo.dwPlatformId = VER_PLATFORM_WIN32_NT then begin
          OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,
            hToken);
          LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tkp.Privileges[0].Luid);
          tkp.PrivilegeCount := 1;
          tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
          AdjustTokenPrivileges(hToken, FALSE, tkp, 0, nil, Nothing);
        end;
        ExitWindowsEx(EWX_FORCE + EWX_SHUTDOWN + EWX_POWEROFF, 0);
    end;
    //--------------win95/98
    procedure  ExitWin9895(EWX:  integer);  
    begin  
       ExitWindowsEx(EWX,  0);  
    end;
      

  5.   

    To  joky1981() 
    你能把源码也给我一份吗?我的邮件[email protected]谢谢了!
      

  6.   

    我直接调用了ExitWindowsEx函数,
    用ExitWindowsEx(0,0);只是注销用户,
    到help中查找ExitWindowsEx的用法,也无说明,
    不知这个函数内的参数都如何写,
    关机的如何写
      

  7.   

    在Win9x 下比较容易实现,但在win2000下却不听话了,WinNT和XP下我没试过,不知怎样
      

  8.   

    ExitWindowsEx函数只能在WIN98下支持
    用在2000&xp下用要先获得相应权限才能有效
    CQP(我生活着,存在的意义还未找到。) 已经写了