Básicamente estoy buscando una manera de ejecutar una aplicación cuando mi computadora portátil pasa a la batería y, de manera similar, cuando vuelve a la CA.
¿Hay un enlace incorporado en Windows o una aplicación de terceros que me permita responder a tales eventos?
EDITAR
He examinado el TaskScheduler tratando de disparar una tarea en un evento de "encendido", pero parece que no se registra ningún evento al cambiar a la batería.
windows-7
laptop
power-management
battery
Ryan Emerle
fuente
fuente
Respuestas:
Escribí una aplicación ( http://batterysaver.codeplex.com/ ) que escuchará un mensaje de cambio de modo de energía y ejecutará acciones basadas en una configuración XML.
Si alguien más puede usarlo o extenderlo, entonces increíble. Si hay algo mejor, publíquelo.
fuente
No conozco un comando simple que pueda ejecutar para esto, pero las secuencias de comandos deberían poder hacerlo.
Intente interceptar el evento Win32_PowerManagementEvent en PowerShell o WSH . El artículo de tomshardware tiene un código vbscript, pero creo que necesitará un caso para eventtype 10 (cambio de powerstate). StackOverflow tiene algunas ideas en ¿Cómo puedo saber cuándo Windows entra / sale del modo de suspensión o Hibernate? , aunque tendrá que ampliar la idea para manejar el cambio de estado de energía en lugar de suspender / hibernar. También puede encontrar algunas ideas en el código para la pregunta ¿Cómo se usa ManagementEventWatcher para realizar un seguimiento de la suspensión / reanudación?
EDITAR: De hecho, intente algo como esto. Esto está totalmente pirateado, por lo que no es bonito. Cambie las declaraciones de Echo para hacer lo que desee si se detecta un cambio en la alimentación de CC o CA. Corre con
cscript power.vbs
power.vbs
fuente
Me encanta el enfoque de Bill, pero él no le dice cómo registrarse para un evento WMI en PowerShell, así que aquí le mostramos cómo hacerlo.
Si desea que su código se active solo cuando cambie el estado de alimentación del sistema, como se describe aquí , use este código.
Ahora, esto se activará cada vez que cambie el estado de alimentación, ya sea que conecte el dispositivo, O lo desenchufe. Por lo tanto, es posible que desee parar y hacer una pausa para hacer la pregunta:
Afortunadamente, podemos hacerlo a través de la clase WMI
BatteryStatus
, así que aquí está la construcción completa que uso para ejecutar SOLO una operación cuando cambia un evento de energía, y luego solo si ya no estoy en Energía.fuente