Ir para conteúdo
Fórum Script Brasil
  • 0

Desligar O Pc Via Código


Rafael_Tomitao

Pergunta

Olá,

Pessoal eu gostaria de saber como eu posso desligar e reiniciar o PC via código no WinXP, e também nos outros Win's se for diferente....

Estou fazendo o segunte:

Para deligar:

ExitWindowsEx EWX_SHUTDOWN, 0

Para reiniciar:

ExitWindowsEx EWX_REBOOT, 0

Para dar Log Off:

ExitWindowsEx EWX_LOGOFF, 0

Mas apenas o log off esta funcinando, o reiniciar e desligar não funciona....

muito obrigado

[]'s

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Da uma olhada neste tópico:

http://scriptbrasil.com.br/forum/index.php...=0entry160945

e tente chamar a função desta forma:

 Private Const EWX_SHUTDOWN As Long = 1
      Private Const EWX_REBOOT As Long = 2
      Private Const EWX_FORCE As Long = 4
      Private Const EWX_FORCEIFHUNG As Long = 16
      Private Const EWX_POWEROFF As Long = 8

'SHUTDOWN
        ExitWindowsEx (EWX_SHUTDOWN Or EWX_FORCEIFHUNG), &HFFFF
'Reboot
        ExitWindowsEx (EWX_REBOOT Or EWX_FORCEIFHUNG), &HFFFF
'Power off
        ExitWindowsEx (EWX_POWEROFF Or EWX_FORCEIFHUNG), &HFFFF

Link para o comentário
Compartilhar em outros sites

  • 0
Graymalkin,

Por favor coloque o código que você achou, pois estou precisando muito, mas nada esta funcionando no meu XP....

Muito Obrigado

[]'s

Aí vai:

Coloque isso em um módulo:

Public Declare Function RtlAdjustPrivilege& Lib "ntdll" (ByVal Privilege&, ByVal NewValue&, ByVal NewThread&, OldValue&)
Public Declare Function NtShutdownSystem& Lib "ntdll" (ByVal ShutdownAction&)
Public Const SE_SHUTDOWN_PRIVILEGE& = 19
Public Const XP_SHUTDOWN = 0
Public Const XP_RESTART = 1
Public Const XP_POWEROFF = 2
Use o código abaixo para desligar o computador:
RtlAdjustPrivilege SE_SHUTDOWN_PRIVILEGE, 1, 0, 0
NtShutdownSystem XP_POWEROFF

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Pelo que vi aqui esse código desliga o micro direto sem passar pelo processo de desligamento normal, por ele desligar dessa forma não poderia ocasionar danos no sistema.

Creio que isso seja uma pergunta, né? Se sim, o que aquele código faz é uma espécie de "desligamento rápido" do sistema, e não um desligamento impróprio. Nunca tive problemas em relação a isso, e eu uso aquele código para desligar o meu computador todos os dias, programando para desligar horas depois que eu saio de casa.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...