Fórum desligar o windows 2000 server #233370

20/05/2004

0

Como faco para desligar o windows 2000 server via programa ... qual comando ??
agradeco


Deusem

Deusem

Responder

Posts

20/05/2004

Fabio.hc

Tente assim:

function WinExit(flags: integer): boolean;
  function SetPrivilege(privilegeName: string; enable: boolean): boolean;
  var 
    tpPrev, tp : TTokenPrivileges;
    token : THandle;
    dwRetLen : DWord;
  begin
    result := False;
    OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, token);
    tp.PrivilegeCount := 1;
    if LookupPrivilegeValue(nil, pchar(privilegeName), tp.Privileges[0].LUID) then
    begin
      if enable then
        tp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED
      else
      tp.Privileges[0].Attributes := 0;
      dwRetLen := 0;
      result := AdjustTokenPrivileges(token, False, tp, SizeOf(tpPrev), tpPrev, dwRetLen);
    end;
    CloseHandle(token);
  end;
begin
  if SetPrivilege(´SeShutdownPrivilege´, true) then 
  begin
    ExitWindowsEx(flags, 0);
    SetPrivilege(´SeShutdownPrivilege´, False)
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  WinExit(EWX_SHUTDOWN or EWX_FORCE);
end;



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar