我在寫一個小程序來保存筆記本電腦的電池,現在我可以在使用PowerSetActiveScheme
的電源方案之間進行切換。如何在程序中啓用/禁用Windows 10電池保護程序?
下一步是控制Windows 10中的電池節電器。雖然我可以使用GetSystemPowerStatus
讀取它的狀態,但我找不到以編程方式啓用/禁用它的方法。 Windows API中是否有這樣的功能?
我在寫一個小程序來保存筆記本電腦的電池,現在我可以在使用PowerSetActiveScheme
的電源方案之間進行切換。如何在程序中啓用/禁用Windows 10電池保護程序?
下一步是控制Windows 10中的電池節電器。雖然我可以使用GetSystemPowerStatus
讀取它的狀態,但我找不到以編程方式啓用/禁用它的方法。 Windows API中是否有這樣的功能?
最可能的是,你可以通過ShellExecuteEx()
做Linux的方式,通過調用名爲PowerCfg
系統應用:
powercfg /setdcvalueindex SCHEME_CURRENT SUB_ENERGYSAVER ESBATTTHRESHOLD 100
powercfg /setactive scheme_current
這意味着,即使電池百分比等於100%的節能被激活。 SUB_ENERGYSAVER
及其子GUID ESBATTTHRESHOLD
是described here。
如果啓用了電池保護程序功能,這可以在Windows上使用。我認爲OP想知道如何啓用/禁用該功能。 – jwdonahue
你似乎不走運。 MSDN文檔沒有顯示通過它可以控制電池保護程序的API。檢查SettingsHandlers_OneCore_BatterySaver顯示只有GetSetting被暴露。 Even SetPowerState in WMI Win32_Battery is not implemented - 我知道這並不完全符合您的需求,但它表明微軟並未涉足與電池相關的功能。此時,您最好的辦法就是用AutoHotKey,however beware of the pitfalls with that等類似的東西來模擬它,而不是對按鈕點擊進行逆向工程。
那天我花了好幾個小時看着這個。有多種方法來設置閾值和控制功率級別,但沒有公開的方式來啓用/禁用該功能。 – jwdonahue
你是否看過:https://msdn.microsoft.com/de-de/library/windows/desktop/aa373163(v=vs.85).aspx? –
我無法在(英文版)中找到允許將'電池保護程序'切換爲'打開'的文章。 FWIW,看起來你並不孤單,在這個問題上: https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/8b1dbe33-d8fb-4be8-af53-0de13d288136/enabling-battery-saver-energy -saver-in-windows-10-via-win32-api?forum = powermanagement –
它確實需要PowerSetActiveScheme()。但是,當然,你不知道哪個特定的方案是「好的」。修改電源方案是計算機制造商能夠使其機器「特殊」的少數幾種方法之一,儘管每個人都使用完全相同的組件和完全相同的操作系統。那裏有一個更好的項目。 –