Je cherche essentiellement un moyen d'exécuter une application lorsque mon ordinateur portable passe à l'alimentation par batterie et, de la même manière, lorsqu'il revient en courant alternatif.
Existe-t-il un hook intégré dans Windows ou une application tierce qui me permettra de répondre à de tels événements?
ÉDITER
J'ai examiné le TaskScheduler en essayant de déclencher une tâche sur un événement "power", mais aucun événement ne semble être enregistré lors du passage à la batterie.
windows-7
laptop
power-management
battery
Ryan Emerle
la source
la source
Réponses:
J'ai écrit une application ( http://batterysaver.codeplex.com/ ) qui écoutera un message de changement de mode d'alimentation et exécutera des actions basées sur une configuration XML.
Si quelqu'un d'autre peut l'utiliser ou l'étendre, c'est génial. S'il y a quelque chose de mieux, veuillez le poster.
la source
Je ne connais pas de commande simple que vous pouvez exécuter pour cela, mais les scripts devraient pouvoir le faire.
Essayez d'intercepter l' événement Win32_PowerManagementEvent dans PowerShell ou WSH . L'article de tomshardware contient du code vbscript, mais je pense que vous aurez besoin d'un cas pour le type d'événement 10 (changement de puissance). StackOverflow a quelques idées sur Comment puis-je savoir quand Windows entre / sort du mode veille ou veille prolongée? , mais vous devrez étendre l'idée pour gérer le changement d'état d'alimentation au lieu de veille / veille prolongée. Vous pouvez également trouver quelques idées dans le code de la question Comment utiliser ManagementEventWatcher pour suivre la suspension / reprise?
EDIT: En fait, essayez quelque chose comme ça. C'est totalement piraté ensemble, donc ce n'est pas joli. Modifiez les instructions Echo pour faire ce que vous voulez si une modification de l'alimentation CC ou CA est détectée. Courir avec
cscript power.vbs
power.vbs
la source
J'adore l'approche de Bill, mais il ne vous dit pas comment vous inscrire à un événement WMI dans PowerShell, alors voici comment le faire.
Si vous souhaitez que votre code ne se déclenche que lorsque l'état de l'alimentation du système change, comme décrit ici , utilisez ce code.
Maintenant, cela se déclenchera chaque fois que l'état d'alimentation changera, que vous branchiez l'appareil ou le débranchiez. Donc, vous voudrez peut-être arrêter et vous arrêter pour poser la question:
Heureusement, nous pouvons le faire via la classe WMI
BatteryStatus
, alors voici la construction complète que j'utilise pour exécuter UNIQUEMENT une opération lorsqu'un événement d'alimentation change, et seulement si je ne suis plus sous tension.la source