У меня есть метод определения уровня заряда батареи и таймер для периодической проверки уровня заряда батареи.
void GetBatteryLevel()
{
try
{
//Use this code in next build
//System.Windows.Forms.PowerStatus status = System.Windows.Forms.SystemInformation.PowerStatus;
double batteryLevel;
ManagementObjectSearcher mos = new ManagementObjectSearcher("select EstimatedChargeRemaining from Win32_Battery");
ManagementObjectCollection collection = mos.Get();
foreach (ManagementObject mo in collection)
{
UInt16 remainingPercent = (UInt16)mo["EstimatedChargeRemaining"];
batteryLevel = (double)remainingPercent;
batteryLevel = batteryLevel / 100;
batteryLevel = 1.0 - batteryLevel;
BatteryLevel = new System.Windows.Point(0.0, batteryLevel);
}
}
catch (Exception exp)
{
Logger.LogMessage("EXCEPTION: " + exp.StackTrace);
}
}
Есть ли способ регистрации событий, когда уровень заряда батареи падает или увеличивается на 1%? Я уже зарегистрировался в SystemEvents.PowerModeChanged, и это прекрасно работает.
batteryLevel
отличается отlastBatteryLevel
, как я уже сказал, могут быть лучшие способы. - person Sayse   schedule 18.09.2013