Ich suche im Grunde nach einer Möglichkeit, eine Anwendung auszuführen, wenn mein Laptop auf Batteriestrom umschaltet und wenn er auf Wechselstrom zurückkehrt.
Gibt es einen integrierten Hook in Windows oder eine Drittanbieteranwendung, mit der ich auf solche Ereignisse reagieren kann?
BEARBEITEN
Ich habe in den TaskScheduler geschaut und versucht, eine Aufgabe bei einem "Power" -Ereignis auszulösen, aber beim Umschalten auf Batterie scheint kein Ereignis protokolliert zu werden.
windows-7
laptop
power-management
battery
Ryan Emerle
quelle
quelle
Antworten:
Ich habe eine Anwendung ( http://batterysaver.codeplex.com/ ) geschrieben, die auf eine Meldung zum Ändern des Energiemodus wartet und Aktionen basierend auf einer XML-Konfiguration ausführt.
Wenn jemand anderes es verwenden oder erweitern kann, dann großartig. Wenn es etwas Besseres gibt, dann poste es bitte.
quelle
Sie kennen keinen einfachen Befehl, den Sie dafür ausführen können, aber Scripting sollte dies können.
Versuchen Sie, das Win32_PowerManagementEvent- Ereignis in PowerShell oder WSH abzufangen . Der Tomshardware-Artikel enthält etwas VBScript-Code, aber ich denke, Sie benötigen einen Fall für Ereignistyp 10 (Powerstate-Änderung). StackOverflow hat einige Ideen unter Wie kann ich wissen, wann Windows in den Ruhezustand oder in den Ruhezustand wechselt? Sie müssen jedoch die Idee erweitern, um die Änderung des Energiezustands anstelle von Ruhezustand / Ruhezustand zu handhaben. Möglicherweise finden Sie im Code auch einige Ideen für die Frage: Wie verwendet man ManagementEventWatcher, um das Anhalten / Fortsetzen zu verfolgen?
EDIT: In der Tat versuchen Sie so etwas. Das ist total zusammen gehackt, also ist es nicht schön. Ändern Sie die Echo-Anweisungen, um zu tun, was Sie wollen, wenn eine Änderung der Gleich- oder Wechselstromversorgung erkannt wird. Laufen Sie mit
cscript power.vbs
power.vbs
quelle
Ich mag Bills Ansatz, aber er sagt Ihnen nicht, wie Sie sich für ein WMI-Event in PowerShell registrieren sollen. Hier erfahren Sie, wie Sie dies tun.
Wenn Sie möchten, dass Ihr Code nur ausgelöst wird, wenn sich der Systemstromstatus ändert, wie hier beschrieben , verwenden Sie diesen Code.
Dies wird nun ausgelöst, wenn sich der Stromstatus ändert, unabhängig davon, ob Sie das Gerät anschließen oder ausstecken. Vielleicht möchten Sie weiter anhalten und eine Pause einlegen, um die Frage zu stellen:
Glücklicherweise können wir dies über die WMI-Klasse
BatteryStatus
tun. Hier ist das vollständige Konstrukt, mit dem ich NUR eine Operation ausführe, wenn sich ein Energieereignis ändert, und dann nur, wenn ich nicht mehr mit Strom versorgt bin.quelle