Quero colocar 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 para, mas o computador dorme (mas está no chão e tenho preguiça de alcançá-lo) exatamente como eu quero (dorme usando o modo híbrido, no caso de falta de energia)
O comando de suspensão no menu de desligamento também funciona.
a maioria das informações que 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 hibernação desativada, mas usando sono híbrido.
Então, qual é o comando a ser usado para colocar o computador em suspensão (não em hibernação)?
windows-7
windows
command-line
Eric L
fonte
fonte
rundll32.exe PowrProf.dll,SetSuspendState
não é recomendado. É perigoso. (Porque ele corrompe a pilha, como ele não cumprir com a assinatura da função exigida peloRundll32
. Então imprevisíveis coisas ruins podem acontecer, como Raymond Chen adverte ...)Respostas:
Eu encontrei uma solução. Instalei um programa freeware chamado AutoHotKey e gravei as etapas para invocar o Menu Iniciar -> Dormir em um arquivo de script. Em seguida, compilei o arquivo de script em um SleepWin7.exe executável autônomo.
Agora, simplesmente executo o SleepWin7.exe para colocar meu computador em suspensão híbrida.
Você pode desinstalar o AutoHotKey se for tudo o que precisa.
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 4h todos os domingos para realizar backup semanal, o que é feito sem o login do usuário.) Nesse caso, o programa Wizmo ainda funciona:
fonte
nircmd.exe standby
mais informações podem ser encontradas aqui -> nirsoft.net/utils/nircmd.htmlEspero que você ache isso útil.
Desligar
%windir%\System32\shutdown.exe -s
Reiniciar
%windir%\System32\shutdown.exe -r
Sair
%windir%\System32\shutdown.exe -l
Espera
%windir%\System32\rundll32.exe powrprof.dll,SetSuspendState StandbyHibernate
%windir%\System32\rundll32.exe powrprof.dll,SetSuspendState HibernateCuidado: o 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.
Em seguida, execute-o usando
powershell -File C:\your-path\sleep.ps1
. Você pode primeiro executar o comandoSet-ExecutionPolicy RemoteSigned
para permitir a execução de scripts do PowerShell.O script acima causa uma suspensão do sistema, que será suspensa ou hibernada dependendo da sua configuração atual de hibernação. Para alterar essa configuração na linha de comando, execute
powercfg -h off
(ouon
) na linha de comando como administrador.fonte
Veja o utilitário gratuito do Wizmo , que pode fazer muitas coisas.
O comando que você está procurando é provavelmente:
fonte
wizmo.exe quiet standby
suprime, indiscutivelmente, sinais sonoros irritanteswizmo.exe
.Você pode criar um arquivo com a extensão .ps1 (powershell) como "sleep.ps1" e escrever o seguinte:
Eu uso isso quando tenho algo em execução e tenho que sair do PC e não quero desligá-lo. Então, mudo o script para ficar assim:
E agora, quando executo, apenas digito os minutos que quero esperar até dormir.
Você pode executar isso a partir da linha cmd escrevendo
Se você nunca executou um script do PowerShell antes, convém executar primeiro
no PowerShell para habilitar a execução de scripts. Isso só precisa ser executado uma vez.
fonte
Com o Sysinternals PsTools [ download ]:
usando a ferramenta de linha de comando PsShutdown .
(Você pode preferir esta solução se você já baixou o PsTools, é bastante usado. Fora isso, essa abordagem é equivalente a usar .)
wizmo
quiet standby
Fonte: https://superuser.com/a/331545/21887
fonte
Eu tenho usado este utilitário SLEEP.EXE há anos. Funciona bem e você não precisa se lembrar de quais argumentos dar para o modo de suspensão (sua forma padrão de "suspensão").
fonte
para desativar o modo de hibernação, você precisa usar
agora, rundll32 powrprof.dll, SetSuspendState colocará sua estação no modo de espera
[EDITAR]
na verdade, não consigo 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, é necessário ter a hibernação ativada e alguns dizem que o rundll32 powrprof.dll, SetSuspendState aciona o sono padrão no painel de controle \ configurações de gerenciamento de energia. tente se rundll32 powrprof.dll, sono híbrido SetSuspendState fornecer alguns resultados.
fonte
Faça um arquivo bat, onde 600 é um atraso em segundos.
ping -n 600 -w 1 127.0.0.1> nul
powercfg -h desligado
% windir% \ System32 \ rundll32.exe powrprof.dll, Suporte em espera do SetSuspendState
fonte
Se você é competente na compilação de um programa .NET, o comando a seguir fará isso
Nota: Você não precisa desativar a hibernação, conforme exigido pelo
rundll32 powrprof.dll,SetSuspendState
comando. Você também pode usar oPowerState.Hibernate
que hibernará a máquina, se desejar.Você pode compilar facilmente um EXE com esse comando em qualquer versão do Visual Studio . Basta criar um aplicativo de console e adicionar uma referência à
System.Windows.Forms
DLL.fonte
Visual Studio
para compilar. Em vez disso, o compilador de linha de comandocsc.exe
pode ser usado. Ele já está instalado em todas as versões modernas do Windows.