Jump to content
Fórum Script Brasil
  • 0

Desligar O Pc Via Código


Rafael_Tomitao
 Share

Question

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 to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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.

abraço...

Link to comment
Share on other 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 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
      150.7k
    • Total Posts
      648.4k
×
×
  • Create New...