I'm trying to figure out, how to get Event of Power Plan Changing between High Performance, Power Saver and Balanced, I need it to change my app with different mode for each plan. I found some solutions on this direction, but does not get desired result.
For example if I take item.CurrentMhz
, which registers processor current power value, it is useful for different purposes, but this outputs does not gives me Power Plan state public uint Number; MaxMhz; CurrentMhz; MhzLimit; MaxIdleState; CurrentIdleState;
. For example CurrentIdleState
is equal on Power Saver and High Performance plan. Anyway if I can somehow use it, main problem is that I can't make it work as event, only as conditional result. But as fact it is not the Power Plan State, and power value is different for different processors. Seems like for this goal it is not the correct way to get desired result.
SystemEvents_PowerModeChanged
also does not make sense for this case, takes only Power State changing event if cord is connected or disconnected.
Same with PowerStatus powerStatus = SystemInformation.PowerStatus;
which is same, but with identification of Current Power Status if cord is connected or disconnected.
So I'm not sure, if there is any useful solution, how can I get this event between Power Plans changing.