Если вы видите баннеры при просмотре с КПК, то вам - СЮДА | Как мониторить состояние аккумулятора? Форумы Поиск Вход Для ПК Программирование для КПК
Пн Фев 09, 2009 4:37 okaton (Новый писатель) | |
| Доброго времени суток
Подскажите пожалуйста, каким образом можно мониторить состояние аккумулятора.
Пишу на Visual C# 2008 | Чт Фев 12, 2009 9:17 okaton (Новый писатель) | |
| Подскажите пожалуйста, вообще возможно получить текущую емкость аккумулятора? | Пт Фев 13, 2009 9:40 AE (Гуру, Moscow, Russia) | |
| GetSystemPowerStatusEx2 ____________ http://aeinc.ru | Пт Фев 13, 2009 21:44 okaton (Новый писатель) | |
| использую такой код:
[DllImport("coredll")]
static public extern Int32 GetSystemPowerStatusEx2(SYSTEM_POWER_STATUS_EX2 lpSystemPowerStatus, Int32 dwLen, bool fUpdate);
public class SYSTEM_POWER_STATUS_EX2
{
public byte ACLineStatus;
public byte BatteryFlag;
public byte BatteryLifePercent;
public byte Reserved1;
public uint BatteryLifeTime;
public uint BatteryFullLifeTime;
public byte Reserved2;
public byte BackupBatteryFlag;
public byte BackupBatteryLifePercent;
public byte Reserved3;
public uint BackupBatteryLifeTime;
public uint BackupBatteryFullLifeTime;
public uint BatteryVoltage;
public uint BatteryCurrent;
public uint BatteryAverageCurrent;
public uint BatteryAverageInterval;
public uint BatterymAHourConsumed;
public uint BatteryTemperature;
public uint BackupBatteryVoltage;
public byte BatteryChemistry;
}
private void button1_Click(object sender, EventArgs e)
{
SYSTEM_POWER_STATUS_EX2 Status = new SYSTEM_POWER_STATUS_EX2();
GetSystemPowerStatusEx2(Status, Marshal.SizeOf(Status), false);
textBox1.Text= Status.BackupBatteryLifePercent.ToString();
}
* This source code was highlighted with Source Code Highlighter.
Вопрос в чем, мне нужна емкость, и она вроде как есть в классе:
uint BatteryAverageCurrent; // средний ток
uint BatteryAverageInterval; // интервал изменения тока
uint BatterymAHourConsumed; // емкость батареи в mAH
* This source code was highlighted with Source Code Highlighter.
но на выходе получаю 0 на 4 устройствах Sad
Подскажите пожалуйста, вообще возможно получить полную и текущую емкости аккумулятора? | Вт Фев 17, 2009 3:05 AE (Гуру, Moscow, Russia) | |
| Емкость как таковая (в mAh) насколько я знаю _исключительно_ редко доступна программно. Если не ошибаюсь, видел это только один раз на каком-то Symbol'овском девайсе.
Есть вероятность что эта информация доступны через дополнительные API реализованные OEM'ом (тем же Symbol'ом или HP например) - но вряд ли получится найти универсальный способ.
А так ли она нужна, емкость-то? Обычно вполне достаточно текущего процента заряда обычно... ____________ http://aeinc.ru | Чт Фев 19, 2009 0:42 okaton (Новый писатель) | |
| Нужна (очень), процент заряда с шагом 10 | Сб Фев 21, 2009 2:26 AE (Гуру, Moscow, Russia) | |
| Поле BatteryLifePercent. Смотреть там же где было взято описание структуры
Насчет "с шагом 10%" - это как повезет. На большинстве КПК дискретность как раз шаг 10% или даже меньше. Но есть модели у которых BatteryLifePercent принимает только три значения или вообще невалиден. Тогда можно полуыить только состояние аккумулятора (заряжен-заряжается-разряжен) по ACLineStatus и BatteryFlag. ____________ http://aeinc.ru |
Если вы видите баннеры при просмотре с КПК, то вам - СЮДА |
Powered by phpBB © 2001 phpBB Group
|