У меня есть способ определения уровня заряда батареи и таймера, чтобы периодически проверять уровень заряда батареи.Уровень батареи C#
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 и работает отлично.
Вы можете обмануть и использовать элемент управления, который никогда не добавляется к форме, т.е. есть флажок, где вы можете изменить его значение проверяется. Я не уверен в другом способе. – Sayse
Android обеспечивает события для снижения/увеличения уровня заряда батареи. Должен быть способ в окнах –
, и таймеры будут влиять на батарею в зависимости от интервала –