Fórum Desligar o programa com o pc!!! #230991

09/05/2004

0

ola pessoal!
Neste dias eu fiz um software para automaçao industrial so não consigo desligar o computador guando eu fecho o programa.
Pegunto:
01- como fazer para fechar o programa via codigo?
02 - no evento onclose: como fazer para desligar o pc??
se alguem souber por favor me ajude ate mais e muito obrigado!


Transistorbr

Transistorbr

Responder

Posts

09/05/2004

Fabio.hc

Tente assim:


Função para Desligar o Windows 2000

Use-a assim:
WinExit(EWX_SHUTDOWN or EWX_FORCE);


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;


Ou

Desligando Windows via programação

function ExitWindowsEx(uFlags : integer; // shutdown operation
dwReserved : word) : boolean; // reserved
external ´user32.dll´ name ´ExitWindowsEx´;
procedure Tchau;
const
  EWX_LOGOFF = 0; // Dá "logoff" no usuário atual
  EWX_SHUTDOWN = 1; // "Shutdown" padrão do sistema
  EWX_REBOOT = 2; // Dá "reboot" no equipamento
  EWX_FORCE = 4; // Força o término dos processos
  EWX_POWEROFF = 8; // Desliga o equipamento
begin
  ExitWindowsEx(EWX_FORCE, 0);
end;



Responder

Gostei + 0

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

Aceitar