Ich schreibe ein kleines Programm, um die Batterie meines Laptops zu retten, und ich kann jetzt mit PowerSetActiveScheme
zwischen Energieschemen wechseln.
Der nächste Schritt besteht darin, den Energiesparmodus in Windows 10 zu steuern. Obwohl ich den Zustand mit GetSystemPowerStatus
lesen kann, kann ich keine programmgesteuerte Aktivierung / Deaktivierung finden. Gibt es dafür Funktionen in der Windows API?
Höchstwahrscheinlich können Sie es auf Linux-Weise tun, indem Sie eine System-App namens PowerCfg
bis ShellExecuteEx()
:
Dies bedeutet, dass der Energiesparmodus aktiviert wird, auch wenn der Prozentsatz der Batterie gleich 100% ist. SUB_ENERGYSAVER
und seine Sub-GUID ESBATTTHRESHOLD
sind hier beschrieben .
Sie scheinen kein Glück zu haben. MSDN-Dokumente zeigen keine API, über die der Energiesparmodus gesteuert werden könnte. Die Untersuchung von SettingsHandlers_OneCore_BatterySaver zeigt, dass nur GetSetting verfügbar gemacht wird. Sogar SetPowerState in WMI Win32_Battery ist nicht implementiert - das weiß ich ist nicht genau das, was Sie brauchen, aber es zeigt, dass Microsoft nicht dazu gekommen ist, die batteriebezogenen Funktionen zu enthüllen. An dieser Stelle ist es am besten, wenn Sie den Button nicht reverse-engineeren, sondern ihn mit etwas wie AutoHotKey emulieren, aber passen Sie auf Fallstricke damit .