在delphi中怎样实现?

解决方案 »

  1.   

    xp下好象是SHUTDOWN。EXE,2000下没有,可COYP XP的 。
      

  2.   

    procedure ShutDown;
    var
      hProcess, hToken, lBufferNeeded: Cardinal;
      tmpLuid: TLargeInteger;
      tkp, tkp1: TOKEN_PRIVILEGES;
    begin
      hProcess := GetCurrentProcess;
      OpenProcessToken(hProcess, (TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY), hToken);
      LookupPrivilegeValue('', 'SeShutdownPrivilege', tmpLuid);
      tkp.PrivilegeCount := 1;
      tkp.Privileges[0].Luid := tmpLuid;
      tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
      AdjustTokenPrivileges(hToken, False, tkp, sizeof(tkp1), tkp1, lBufferNeeded);
      ExitWindowsEx(EWX_POWEROFF + EWX_FORCE, 0);
    end;
      

  3.   

    sysu(死树) 又被你抢先了,在哪里做呀?交个朋友?