Desejo criar um arquivo em lotes que interrompa meu computador após um período de tempo.
A coisa mais próxima que encontrei foi colocá-lo em modo de espera, mas parece funcionar de maneira diferente do botão de suspensão no teclado (inicialização mais longa, não é acionada com o clique do mouse). Alguma ideia? Seria mais fácil em Python ou C #?
A técnica menos ideal do que a mencionada acima está chamando isso no prompt do cmd:
Rundll32.exe powrprof.dll,SetSuspendState
windows-7
sleep
batch-file
Saebin
fonte
fonte
Respostas:
Simplesmente comando
O sistema hiberna , mas se você escrever isso:
E desative a hibernação com o comando:
Agora, seu sistema entrará em sono e será ativado com o movimento do mouse, se um dispositivo for selecionado (role para baixo para saber como).
Lote um cronômetro:
Onde 1200 é segundos, o que significa que após 20 minutos o lote executará o comando de suspensão.
Opcionalmente, você pode impedir o cancelamento da contagem regressiva (se você pressionar qualquer tecla na janela de lote):
Pouco HOWTO sobre acordar com o mouse:
Vá para: Iniciar -> Painel de Controle -> Mouse.
Na janela Propriedades do mouse , clique na guia Hardware e selecione o mouse na lista de dispositivos. Normalmente, haverá apenas um mouse listado aqui, mas isso dependerá do hardware que você conectou ao seu computador. Quando você selecionar o mouse na lista, clique no botão Propriedades .
Agora, na janela Propriedades do mouse, clique no botão Alterar configurações na guia Geral .
Na janela que é aberta, clique na guia Gerenciamento de energia e marque a opção Permitir que este dispositivo ative o computador . Clique no botão OK nesta janela e clique no botão OK nas janelas Propriedades do mouse que ainda estão abertas. A partir de agora, você pode ativar o Windows 7 no modo de suspensão clicando em um botão do mouse ou movendo o mouse.
fonte
hibernará o computador (embora não tenha certeza sobre a suspensão).
fonte
Solução de trabalho!
Eu tive que usar o
PsShutdown
utilitário para permitir uma suspensão adequada (o principal problema éSetSuspendState
não permitir que os temporizadores de despertar ativem a máquina). Meu arquivo em lotes para dormir é uma linha simples:fonte
.NET para o resgate. Esta solução colocou o computador no modo de suspensão sem precisar alterar a configuração do PC (desativando a hibernação). Execute este comando no lote:
powershell.exe -command "Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.Application]::SetSuspendState([System.Windows.Forms.PowerState]::Suspend, $false, $false)"
Você pode usá-lo
::Suspend
para dormir ou::Hibernate
(como a outra resposta funciona). Documentação para SetSuspendState.Como o
System.Windows.Forms
espaço para nome não é carregado por padrão (no Powershell ISE), você precisa carregar o conjunto para isso primeiro.resposta original
fonte
Você pode tentar SetSystemPowerState para evitar ter que desativar o Hiberanate.
rundll32.exe kernel32.dll, SetSystemPowerState
Observe que adicionando 1,0 ou 1 0 ou mesmo executando Rundll32.exe powrprof.dll, SetSuspendState 0 0 1 ou Rundll32.exe powrprof.dll, SetSuspendState 0,0,1 que os argumentos (0,0,1) significam NADA.
O powrprof.dll, SetSuspendState não analisa argumentos de estilo rundll32 e, portanto, os ignora. É por isso que você precisa desativar a hibernação.
fonte
Esta pergunta já foi respondida.
powercfg -h desligado e início / min "" C: \ WINDOWS \ System32 \ rundll32.exe PowrProf.dll, SetSuspendState 0,1,0 e ping -n 3 127.0.0.1> nul e powercfg -h ativado e encerrado
Veja o seguinte:
Qual é o comando a ser usado para colocar o computador em suspensão (não em hibernação)?
fonte
Basta criar um arquivo em lotes e inserir as seguintes linhas:
fonte