Comando para chamar o menu 'Desativar o computador'

9

Eu lembro que há (ou foi) um comando envolvendo rundll32 que chama o menu 'Desligar o computador' do Windows XP - o que também pode ser chamado indo para Menu Iniciar & gt; Desligar o computador .

enter image description here

Alguém por acaso sabe / lembra qual é o comando?

P.S .: Não estou falando sobre o comando 'shutdown'.

Edição final: Bem, o comando mais próximo para obter este resultado com rundll32 é o seguinte:

rundll32 msgina.dll,ShellShutdownDialog

Mas note que você terá o menu / diálogo 'clássico' em vez da versão moderna 'temática'. Você pode obter o último usando um one-liner VBScript postado por techie007 abaixo.

Larssend
fonte
Tem certeza de que não estava no Windows 95/98 / ME? Eu acho que foi substituído e a funcionalidade removida. robvanderwoude.com/rundll.php Eu tentei o para o desligamento, e isso errou.
KCotreau
@KCotreau: Não, não tenho certeza, na verdade. Eu só tenho palavras-chave borradas na minha memória.
Larssend
Parecia muito difícil encontrar sua resposta, mas não consegui. Não tenho certeza se você pode mais.
KCotreau
@KCotreau: Desculpe por ter você trabalhado, então. Eu acho que estou desistindo disso também. Obrigado por tentar ajudar.
Larssend
Sem problemas. Eu estava apenas deixando você saber dizendo "MUITO", que eu não dei uma olhada superficial, então você provavelmente não acharia isso, e talvez você não queira se matar olhando. No que diz respeito a trabalhar, tenho gostado de responder a perguntas, e são perguntas como as suas que me fizeram aprender mais.
KCotreau

Respostas:

5

Como outros têm apontado corretamente, esses comandos não funcionam e / ou não devem ser usados.

Aqui está uma opção, você pode usar o script para chamar esse diálogo / menu de desligamento (ele simplesmente aparece no menu de desligamento; ele não seleciona nenhuma ação). Aqui estão algumas noções básicas para você começar:

VBS:

CreateObject("Shell.Application").ShutdownWindows

Salvar como Something.vbs e executá-lo com cscript Something.vbs.

PowerShell:

(New-Object -ComObject Shell.Application).ShutdownWindows();

Você pode obter o PowerShell 2.0 para XP (etc.) do MS aqui (KB968930) .

Eles devem funcionar em todas as versões do XP e superiores (o VBS também pode funcionar no Windows 2000). Eu testei no Windows 7 (Ultimate) e eles funcionaram.

Ƭᴇcʜιᴇ007
fonte
Bom encontrar. O one-liner do VBScript faz o que eu quero. Muitíssimo obrigado.
Larssend
5

Antes do XP, havia um comando, rundll32.exe shell32.dll,SHExitWindowsEx 1. Ele ainda funciona no XP. Não funciona no meu XP VM embora. . .

A partir do XP, a Microsoft inclui o comando shutdown, que não exatamente o que você quer e mais. Trabalha com computadores remotos, etc etc.

Editar:

Existe o mais popular comando Lock Computer que muitas pessoas não conhecem.

rundll32.exe user32.dll, LockWorkStation

editar:

http://blogs.msdn.com/b/oldnewthing/archive/2004/01/15/58973.aspx

Aparentemente, o acima é um não não. Então parece que estamos presos com o PsShutdown.

surfasb
fonte
O ponto do meu comentário acima foi que esse mesmo comando não funciona.
KCotreau
Não vi o seu comentário quando postei. Abortar, repetir, falhar.
surfasb
Não se preocupe. :)
KCotreau
4

Novamente, como em meus comentários, acredito que tenha sido substituído principalmente pelo comando shutdown, que você conhece claramente.

Se você quiser alternativas, tente estas:

shutdown -i (para torná-lo interativo, embora não seja a tela que você queria)

WMIC OS Where Primary=TRUE Call Shutdown (Eu testei isso, funciona 100%)

WMIC OS Where Primary=TRUE Call Reboot

Não tenho certeza se o WMIC está no XP Home.

KCotreau
fonte
0

Bem, se você tiver foco na área de trabalho e acertar ALT + F4 que deve invocar o menu 'Desligar o computador'.

imtheman
fonte