Quiero hacer un archivo por lotes que duerma mi computadora después de un período de tiempo.
Lo más parecido que he encontrado es ponerlo en modo de espera, pero parece funcionar de manera diferente que el botón de suspensión en mi teclado (un arranque más largo, no se activa al hacer clic con el mouse). ¿Algunas ideas? ¿Sería más fácil en Python o C #?
La técnica menos ideal que se menciona anteriormente es llamar a esto en el indicador de cmd:
Rundll32.exe powrprof.dll,SetSuspendState
windows-7
sleep
batch-file
Saebin
fuente
fuente
Respuestas:
Simplemente comando
El sistema hiberna , pero si escribe esto:
Y apague la hibernación con el comando:
Ahora su sistema se dormirá y se activará con el movimiento del mouse si se le selecciona un dispositivo (desplácese hacia abajo para saber cómo).
Lote un temporizador:
Donde 1200 son segundos, lo que significa que después de 20 minutos el lote ejecutará el comando de suspensión.
Opcionalmente, puede evitar la cancelación de la cuenta regresiva (si presiona cualquier tecla en la ventana de lote):
Pequeño CÓMO sobre despertarse con el mouse:
Vaya a: Inicio -> Panel de control -> Mouse.
En la ventana Propiedades del mouse , haga clic en la pestaña Hardware y seleccione su mouse de la lista de dispositivos. Normalmente, solo se mostrará un mouse aquí, pero eso dependerá del hardware que haya conectado a su computadora. Cuando haya seleccionado su mouse de la lista, haga clic en el botón Propiedades .
Ahora, en la ventana Propiedades de su mouse, haga clic en el botón Cambiar configuración en la pestaña General .
En la ventana que se abre, haga clic en la pestaña Administración de energía y marque la opción titulada Permitir que este dispositivo active la computadora . Haga clic en el botón Aceptar en esta ventana y haga clic en el botón Aceptar en la ventana Propiedades del mouse que aún está abierta. A partir de ahora, puede activar Windows 7 desde el modo de suspensión haciendo clic en un botón del mouse o moviéndolo.
fuente
hibernará la computadora (aunque no estoy seguro de suspender).
fuente
Solución de trabajo!
Tuve que usar la
PsShutdown
utilidad para permitir un sueño adecuado (el problema principal esSetSuspendState
que no permite que los temporizadores de activación despierten la máquina). Mi archivo por lotes para dormir es 1 línea simple:fuente
.NET al rescate. Esta solución puso la computadora en suspensión sin necesidad de cambiar la configuración de la PC (apagar la hibernación). Ejecute este comando en lote:
powershell.exe -command "Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.Application]::SetSuspendState([System.Windows.Forms.PowerState]::Suspend, $false, $false)"
Puedes usarlo
::Suspend
para dormir o::Hibernate
(como funciona la otra respuesta). Documentación para SetSuspendState.Como el
System.Windows.Forms
espacio de nombres no se carga de forma predeterminada (sí lo hace en Powershell ISE), primero debe cargar el ensamblaje para eso.respuesta original
fuente
Puede probar SetSystemPowerState para evitar tener que deshabilitar Hiberanate.
rundll32.exe kernel32.dll, SetSystemPowerState
Tenga en cuenta que al agregar 1,0 o 1 0 o incluso al hacer Rundll32.exe powrprof.dll, SetSuspendState 0 0 1 o Rundll32.exe powrprof.dll, SetSuspendState 0,0,1, los argumentos (0,0,1) no significan NADA.
Powrprof.dll, SetSuspendState no analiza los argumentos de estilo rundll32 y, por lo tanto, los ignora. Es por eso que debes deshabilitar la hibernación.
fuente
Esta pregunta ya ha sido respondida.
powercfg -h apagado e inicio / min "" C: \ WINDOWS \ System32 \ rundll32.exe PowrProf.dll, SetSuspendState 0,1,0 & ping -n 3 127.0.0.1> nul & powercfg -h encendido y salir
Ver lo siguiente:
¿Cuál es el comando a utilizar para poner su computadora en suspensión (no hibernar)?
fuente
Simplemente cree un archivo por lotes e inserte las siguientes líneas:
fuente