2009-09-16 14:15:16 +0000 2009-09-16 14:15:16 +0000
147
147

Como posso pôr o computador a dormir a partir do menu Command Prompt/Run?

Sei que quase tudo no Windows, como abrir qualquer tipo de aplicação, pode ser feito a partir do pronto comando ou a partir do menu Executar.

Como posso pôr o meu computador a dormir ou fechá-lo*? Qual é o comando para isso?

Respostas (11)

130
130
130
2009-09-16 14:21:19 +0000

Você encontrará shutdown.exe para ser seu amigo.

Outros comandos úteis ver this post:

Sleep Computer (leia mais em https://superuser. com/a/463652/249349 )

Lock Workstation

Hibernate Computer

see answers by Scott Chamberlain and Eric L

Restart Computer

Shutdown.exe -r -t 00

Shutdown Computer

Shutdown.exe -s -t 00

EDIT/UPDATE:

Parece que dormir um computador é problemático se a hibernação estiver ligada.

Copiando de outras respostas:

Você pode tentar PsShutdown ou:

O comando rundll32.exe powrprof.dll,SetSuspendState 0,1,0 para dormir está correto - entretanto, ele irá hibernar ao invés de dormir se você não desligar a hibernação.

Aqui está como fazer isso:

Vá ao Menu Iniciar e abra um Prompt de Comando elevado digitando cmd.exe, clicando com o botão direito do mouse e escolhendo Executar como administrador. Digite o seguinte comando:

powercfg -hibernate off
87
87
87
2012-02-29 20:57:51 +0000

Os métodos colocados por outras pessoas não funcionam correctamente se um computador tiver hibernação activada, o computador não acorda no Keyboard ou, mais importante, não acorda na tarefa agendada.

Uma das ferramentas Sysinternals da Microsoft é o PsShutdown usando o comando psshutdown -d -t 0 ele vai dormir correctamente, não hibernar, um computador

10
10
10
2013-04-06 18:11:55 +0000

O NirCmd funciona no Windows 8 (presumo que também funcione com o Windows 7) → http://www.nirsoft.net/utils/nircmd.html O comando é standby, mas coloca o computador a dormir.

nircmd.exe standby

Se tiver o sono híbrido activado, funcionará; ou seja, coloca o computador a dormir e copia a memória para o disco em caso de perda de energia.

3
3
3
2009-09-16 19:33:56 +0000

Veja a utilidade gratuita de Wizmo , que pode fazer muitas coisas. O comando que procura é provavelmente:

wizmo standby

3
3
3
2017-01-29 14:55:59 +0000

Eu criei um atalho para rundll32.exe powrprof.dll,SetSuspendState 0,1,0 (também tentei com 0,0,0), mas correr o atalho pareceu colocar o meu PC em hibernação. Não consegui acordar o PC usando o teclado; tive que pressionar o botão de energia, e o PC mostrou as mensagens da placa principal, etc.

Depois de ler o documento Windows API document , criei um programa muito simples com apenas 3 linhas de digitação. Fiz o upload do executável que compilei para esta página (clique no “SleepTest.exe”) , mas este ficheiro pode ser apagado passado algum tempo (este é um site gratuito de alojamento de ficheiros que acabei de encontrar através de uma pesquisa rápida no Google).

Se não confia em mim (o que é totalmente correcto) ou o ficheiro foi apagado, pode compilar o código você mesmo, claro. Você precisa adicionar “PowrProf.lib” às dependências adicionais do Linker.

#include "stdafx.h"
#include "windows.h" <-- Added this to make it work on Windows.
#include "PowrProf.h" <-- Added this to use the sleep function.

int main()
{
    SetSuspendState(FALSE, FALSE, FALSE); <-- Added this actual call.
    return 0;
}

rundll32.exe powrprof.dll,SetSuspendState 0,1,0 parece estar fazendo a mesma coisa, mas de alguma forma, o programa acima não colocou o computador em hibernação. Eu podia acordar o PC instantaneamente (sem mensagens da placa principal, etc.) pressionando qualquer tecla no teclado.

2
2
2
2009-09-17 05:10:31 +0000

Pode iniciar as opções de suspensão ou hibernação a partir da linha de comando como especificado abaixo e referenciado em este artigo .

%windir%\System32\rundll32.exe powrprof.dll,SetSuspendState

Se o seu computador estiver configurado para permitir a hibernação então o comando acima irá iniciar a hibernação. Se a função de hibernação estiver desactivada, então entrará no estado de espera. Como outros usuários responderam anteriormente, shutdown.exe /? irá fornecer muitas opções de desligamento.

1
1
1
2012-07-22 20:56:36 +0000

Deve primeiro desactivar o Hibernate no Windows e depois colocar o computador no estado Sleep*. Utilize os dois comandos seguintes:

powercfg -hibernate off
rundll32.exe powrprof.dll,SetSuspendState 0,1,0

e para fazer a acção inversa, Hibernating* o computador, utilize os comandos abaixo:

powercfg -hibernate on
rundll32.exe powrprof.dll,SetSuspendState Hibernate
1
1
1
2012-08-07 00:27:31 +0000

A Microsoft fornece o PsTools que lhe dá o encerramento do CLI juntamente com outras ferramentas úteis. Você pode obter esse aqui .

1
1
1
2016-03-19 09:53:53 +0000

apenas QUICK SLEEPER funciona para mim (funciona no Windows 7,8,10).

p.s. código fonte disponível aqui .

1
1
1
2016-10-27 23:19:30 +0000

Se tem Python (com pywin32) disponível também pode chamar a função SetSuspendState directamente com:

import ctypes
ctypes.windll.PowrProf.SetSuspendState(0, 1, 0)

Isto pode ser facilmente colocado num ficheiro batch ou num atalho como:

pythonw -c "import ctypes; ctypes.windll.PowrProf.SetSuspendState(0, 1, 0)"

Então se não tem os seus ficheiros .py associados ao intérprete pode simplesmente clicar duas vezes no link.

1
1
1
2018-04-03 05:28:08 +0000

A parte do encerramento da pergunta é clara para todos. shutdown.exe /? mostra todas as opções de encerramento / reiniciar / opções avançadas de arranque / arranque de firmware.

Mas eu vejo tanta agitação por aí sobre a parte do sono. _Todos percebem que rundll32.exe não deve ser usado para chamar funções aleatórias e funciona aqui apenas para hibernar inteiramente por coincidência. Mas essa é a natureza do Windows - uma caixa negra que as pessoas têm andado a espreitar e a encontrar centenas de soluções para fazer um trabalho (gritar para os dons).

Há tantas soluções “proper” que propõem ferramentas externas, mas não consigo encontrar um nativo (híbrido / pinvoke / o que quer que seja) script de lote, mesmo que esta questão se tenha mantido activa ao longo dos anos. Então aqui está o meu simples * power\sleep.bat **:

@echo off &mode 32,2 &color cf &title Power Sleep
set "s1=$m='[DllImport ("Powrprof.dll", SetLastError = true)]"
set "s2=static extern bool SetSuspendState(bool hibernate, bool forceCritical, bool disableWakeEvent);"
set "s3=public static void PowerSleep(){ SetSuspendState(false, false, false); }';"
set "s4=add-type -name Import -member $m -namespace Dll; [Dll.Import]::PowerSleep();"
set "ps_powersleep=%s1%%s2%%s3%%s4%" 
call powershell.exe -NoProfile -NonInteractive -NoLogo -ExecutionPolicy Bypass -Command "%ps_powersleep:"=\"%"
exit

Até funciona como um grande comando de uma linha:

powershell.exe -C "$m='[DllImport(\"Powrprof.dll\",SetLastError=true)]static extern bool SetSuspendState(bool hibernate,bool forceCritical,bool disableWakeEvent);public static void PowerSleep(){SetSuspendState(false,false,false); }';add-type -name Import -member $m -namespace Dll; [Dll.Import]::PowerSleep();"