Jump to content
Fórum Script Brasil
  • 0

[resolvido] Desligar Pc Com Tempo Determinado


vms
 Share

Question

ola pessoal

queria fazer um programa pra desligar o pc, com um edit (ou qualquer outro componente que der certo) onde eu possa determinar o tempo pra o pc ser desligado

eu sei que dar pra fazer isso com um time. mas não sei o comando

alguém pode me ajudar?

valeu pela atençao!!!

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0
Guest --Jonas --
ola pessoal

queria fazer um programa pra desligar o pc, com um edit (ou qualquer outro componente que der certo) onde eu possa determinar o tempo pra o pc ser desligado

eu sei que dar pra fazer isso com um time. mas não sei o comando

alguém pode me ajudar?

valeu pela atençao!!!

Para desligar, reiniciar, resetar ou dar logout no sistema,

use a função ExitWindowsEx, como abaixo:

ExitWindowsEx (uFlags, 0);

onde uFlags é o tipo de reinicialização que vai ocorrer.

Valores de uFlags:

EWX_FORCE - Força todos os processos a terminar.

Ao invés de aparecer a mensagem "A aplicação não está respondendo",

ele força o programa que não responde a finalizar.

EWX_LOGOFF - Faz "logout" do sistema, ou seja, volta à tela de login

(a que pede nome e senha)

EWX_POWEROFF - Desliga o computador

(caso o computador não tenha o recurso de auto-desligamento,

ele fecha todos os programas e informa que o sistema pode ser desligado).

EWX_REBOOT - Reinicializa o computador

(o equivalente a pressionar Ctrl+Alt+Del)

EWX_SHUTDOWN - Fecha todos os programas e informa

ao usuário que é seguro desligar o computador.

A função retorna True se funcionar, ou False em outro caso

Usuários NT: verifique se o usuário tem o direito a desligar

o computador em sua lista de privilégios.

Se quiser coloque o comando dentro de um timer e especifique o tempo que levara para desligar ...ok ?

Link to comment
Share on other sites

  • 0

Oi.

Para desligar o pc, é simples... use o

ExitWindowsEx(EWX_SHUTDOWN,0);

Agora... tenha em mente que isso pode não ser muito seguro se alguma aplicação não for preparada para fazer seu encerramento completo (tabelas de bancos de dados que podem estar abertas e não façam o devido "commit" antes de serem encerradas) ao detectar que o computador está sendo desligado...

Usamos este comando em um programa de caixa (com impressora fiscal), que, ao fechar, pergunta ao operador se ele vai também desligar o computador (a pergunta é opcional)...

Já na firma em que trabalho o servidor desliga, ou melhor, hiberna, automaticamente, depois de (acho) quatro horas parado (controlado pelo gerernciador de energia do próprio XP), e isso geralmente acontece às dez da noite... ele liga sozinho às 6:00 da manhã...

O meu computador também hiberna sozinho, duas horas depois de inativo (geralmente às oito da noite)... ele liga sozinho às 08:00... assim, quando chego, ele já tá pronto para uso, já atualizou o antivirus, já fez as varreduras e pronto...

Estes recursos podem ser bem interessantes, conforme necessário... e acho que vale a pena dar uma experimentada neles...

Ok?

Link to comment
Share on other sites

  • 0

ola pessoal

peguei a dica de voces e fiz assim

procedure TForm1.Timer1Timer(Sender: TObject);

begin

ExitWindowsEx(EWX_POWEROFF,0);

end;

e fiz tambem assim

procedure TForm1.Timer1Timer(Sender: TObject);

begin

ExitWindowsEx (uFlags, 0);

end;

com um time e no interval coloquei 5000

não aconteceu nada

fiz algo errado?

obrigado pela atençao galera!!!

Link to comment
Share on other sites

  • 0
com um time e no interval coloquei 5000

não aconteceu nada

fiz algo errado?

A pergunta óbvia é: você habilitou o timer?

Se sim, houve falha ao executar a função. Você pode colocar um if para testar se a função executou ou não e daí ter uma mensagem de retorno.

Pode ser uma questão de privilégios, talvez. Dá uma olhada neste post, pode lhe ajudar.

Veja também a documentação sobre a função no msdn.

Sobre o flag para desligar:

EWX_POWEROFF: Shuts down the system and turns off the power. The system must support the power-off feature.

The calling process must have the SE_SHUTDOWN_NAME privilege. For more information, see the following Remarks section.

Abraços

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.8k
    • Total Posts
      646.6k
×
×
  • Create New...