Я в основном ищу способ выполнить приложение, когда мой ноутбук переходит на питание от батареи и, аналогично, когда он возвращается к сети переменного тока.
Есть ли встроенный хук в Windows или стороннее приложение, которое позволит мне отвечать на такие события?
РЕДАКТИРОВАТЬ
Я смотрел на TaskScheduler, пытаясь запустить задачу при событии «power», но при переключении на батарею событие не регистрируется.
windows-7
laptop
power-management
battery
Райан Эмерл
источник
источник
Ответы:
Я написал приложение ( http://batterysaver.codeplex.com/ ), которое будет прослушивать сообщение об изменении режима питания и выполнять действия на основе конфигурации XML.
Если кто-то еще может использовать его или расширить, тогда это здорово. Если есть что-то получше, пожалуйста, напишите об этом.
источник
Не знаю простой команды, которую вы можете запустить для этого, но сценарий должен уметь это делать.
Попробуйте перехватить событие Win32_PowerManagementEvent в PowerShell или WSH . В статье по tomshardware есть некоторый код vbscript, но я думаю, что вам понадобится сценарий для типа события 10 (изменение состояния состояния). У StackOverflow есть несколько идей о том, как узнать, когда Windows входит в / из спящего режима или в режим гибернации? хотя вам придется расширить идею обработки изменения состояния питания вместо режима сна / гибернации. Вы также можете найти некоторые идеи в коде вопроса: как использовать ManagementEventWatcher для отслеживания приостановки / возобновления?
РЕДАКТИРОВАТЬ: На самом деле, попробуйте что-то вроде этого. Это полностью взломано вместе, так что это не красиво. Измените операторы Echo так, чтобы они делали все, что вы хотите, если обнаруживается изменение на постоянный или переменный ток. Бежать с
cscript power.vbs
power.vbs
источник
Мне нравится подход Билла, но он не говорит вам, как зарегистрироваться на событие WMI в PowerShell, поэтому вот как это сделать.
Если вы хотите, чтобы ваш код срабатывал только при изменении состояния питания системы, как описано здесь , используйте этот код.
Теперь это будет срабатывать при каждом изменении состояния питания, независимо от того, подключаете ли вы устройство или отключаете его. Таким образом, вы можете остановиться и остановиться, чтобы задать вопрос:
К счастью, мы можем сделать это через класс WMI
BatteryStatus
, так что вот полная конструкция, которую я использую, чтобы ТОЛЬКО запустить операцию, когда событие питания изменяется, и только тогда, когда я больше не на Power.источник