Qual é o comando a ser usado para colocar seu computador em repouso (não hibernar)?

63

Eu quero colocar o meu PC com Windows (Windows 7) em um estado de suspensão via linha de comando (para que eu possa ligar ao botão macro no teclado).

O botão liga / desliga do PC está configurado mas o computador para dormir (mas está no chão e estou com preguiça de baixar) exatamente como eu quero (dorme usando o modo híbrido no caso de eu perder a energia )

O comando sleep no menu de desligamento também funciona.

a maioria das informações que eu encontrei diz para usar;

%windir%\system32\rundll32.exe PowrProf.dll, SetSuspendState 0,1,0

Mas isso coloca o computador no modo de hibernação. Eu tenho hibernate desativado, mas usando o sono híbrido.

Então, qual é o comando a ser usado para colocar seu computador em repouso (não hibernar)?

    
por Eric L 11.09.2009 / 12:16

9 respostas

13

Eu encontrei uma solução. Eu instalei um programa freeware chamado AutoHotKey e registrei as etapas para invocar o Menu Iniciar - > Dormir em um arquivo de script. Então eu cumpri o arquivo de script em um executável autônomo SleepWin7.exe.

Agora, simplesmente executo o SleepWin7.exe para colocar meu computador em suspensão híbrida.

Você pode desinstalar o AutoHotKey se tudo isso for necessário.

Atualização: a solução acima não funciona quando o usuário não está logado, ou seja, a tela de login do Windows 7. (Meu computador acorda às 4 da manhã todos os domingos para realizar o backup semanal, o que é feito sem o login do usuário.) Nesse caso, o Wizmo programa ainda funciona:

wizmo.exe quiet standby!

    
por 28.05.2010 / 21:01
72

Espero que você ache isso útil.

Desligamento %windir%\System32\shutdown.exe -s

Reinicializar %windir%\System32\shutdown.exe -r

Logoff %windir%\System32\shutdown.exe -l

Em espera %windir%\System32\rundll32.exe powrprof.dll,SetSuspendState Standby

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

Cuidado: rundll32.exe não deve ser usado para iniciar o powerprof.dll . Em vez disso, você deve chamar SetSuspendState diretamente. Isso pode ser feito usando o Powershell - crie um arquivo, por exemplo, sleep.ps1, com o conteúdo abaixo.

Add-Type -Assembly System.Windows.Forms
[System.Windows.Forms.Application]::SetSuspendState("Suspend", $false, $true)

Em seguida, execute-o usando powershell -File C:\your-path\sleep.ps1 . Você pode primeiro precisar executar o comando Set-ExecutionPolicy RemoteSigned para permitir que os scripts do PowerShell sejam executados.

O script acima faz com que o sistema suspenda, o que irá adormecer ou hibernar, dependendo da sua configuração atual de hibernação. Para alterar essa configuração na linha de comando, execute powercfg -h off (ou on ) na linha de comando como administrador.

    
por 15.09.2010 / 05:25
15

Veja o utilitário gratuito do Wizmo , que pode fazer muitas coisas.
O comando que você está procurando é provavelmente:

wizmo standby

    
por 11.09.2009 / 12:38
14

Você pode criar um arquivo com extensão .ps1 (powershell) como "sleep.ps1" e escrever isso:

Add-Type -Assembly System.Windows.Forms
[System.Windows.Forms.Application]::SetSuspendState("Suspend", $false, $true)

Eu uso isso quando tenho algo em execução e preciso sair do computador e não quero desativá-lo. Então eu mudo o script para ficar assim:

$minutes = read-host "Enter minutes to wait until sleep";
$secs= 60*$minutes;
Start-sleep -s $secs

Add-Type -Assembly System.Windows.Forms
[System.Windows.Forms.Application]::SetSuspendState("Suspend", $false, $true)

E agora, quando eu o executo, acabei de digitar os minutos que quero esperar até dormir.

Você pode executar isso a partir da linha cmd escrevendo

powershell -File C:\your-path\sleep.ps1

Se você nunca executou um script do PowerShell antes, primeiro será necessário executar

Set-ExecutionPolicy RemoteSigned

no PowerShell para ativar o script em execução. Isso só precisa ser executado uma vez.

    
por 29.06.2011 / 20:56
10

Com Sysinternals PsTools [ faça o download ]:

psshutdown -d

usando a ferramenta de linha de comando PsShutdown .

(Você pode preferir esta solução se já tiver baixado o PsTools, é muito usado. Além disso, essa abordagem é equivalente a usar wizmo quiet standby .)

Fonte: link

    
por 20.06.2012 / 21:25
7

Estou usando este utilitário Sleep.exe durante anos. Ele funciona bem, e você não precisa se lembrar quais argumentos dar para o modo de suspensão (sua forma padrão de "dormir").

    
por 10.10.2012 / 06:25
6

para desabilitar o modo de hibernação você precisa usar

powercfg -h off

agora, powrprof.dll rundll32, SetSuspendState colocará sua estação no modo stanby

[EDITAR]

na verdade eu não posso configurar um sono híbrido porque tenho um laptop (um estado que não está disponível em estações móveis), para o sono híbrido você precisa ter a hibernação ativada e alguns dizem que rundll32 powrprof.dll, disparador SetSuspendState o modo de suspensão padrão nas configurações do painel de controle \ gerenciamento de energia. por favor, tente se powrprof.dll rundll32, sono híbrido SetSuspendState dar alguns resultados.

    
por 11.09.2009 / 15:06
5

Faça um arquivo bat, onde 600 é o atraso em segundos.

ping -n 600 -w 1 127.0.0.1 > nul

powercfg -h off

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

    
por 16.12.2010 / 18:25
4

Se você for competente em compilar um programa .NET, o seguinte comando fará isso

System.Windows.Forms.Application.SetSuspendState(PowerState.Suspend, 
                                                 false,   /* force */
                                                 true     /* disableWake */);

Nota: Você não precisa desabilitar a hibernação como é exigido pelo comando rundll32 powrprof.dll,SetSuspendState . Você também pode usar PowerState.Hibernate , que irá hibernar a máquina se você quiser.

Você poderia facilmente compilar um EXE com este comando com qualquer versão do Visual Studio . Basta criar um aplicativo de console e adicionar uma referência à System.Windows.Forms DLL.

    
por 15.09.2010 / 02:55