Я пытаюсь написать небольшое приложение, которое отслеживает, сколько энергии осталось в аккумуляторе ноутбука, и я хотел бы знать, какую функцию Win32 я мог бы использовать для этого.
Для Vista и выше вы можете использовать RegisterPowerSettingNotification
Для более ранних функций см. Функции управления питанием в этом разделе страницы MSDN «Функции управления питанием: Windows Server 2003 и более ранние версии»
Пример кода метода Vista можно посмотреть на codeproject .
Я рекомендую использовать функцию Win32 GetSystemPowerStatus . Фрагмент кода:
int getBatteryLevel() { SYSTEM_POWER_STATUS status; GetSystemPowerStatus(&status); return status.BatteryLifePercent; }
В следующей ссылке есть очень подробная статья, а также пример проекта n (проверено, работает на Win8.1): http://www.codeproject.com/Articles/15829/Vista-Goodies-in-C-Monitoring-the-Computer-s-Power