C在Windows 7下获得电池寿命

时间:2014-03-19 19:50:23

标签: c windows winapi battery

我试图编写一个获得笔记本电池电量百分比的程序,然后显示一条显示消息的CMD(例如:10% - >"电量不足!") 。 我试图谷歌它,似乎他们都试过C ++或C#。 请问有人能用C帮助我吗?

编辑:感谢zakinster的回复。难道不应该是这样的吗?这段代码无法运作。

#include <Windows.h>
#include <Winbase.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main() {
    SYSTEM_POWER_STATUS status;
    GetSystemPowerStatus(&status);
    unsigned char battery = status.BatteryLifePercent;
    printf("%s", battery);
}

1 个答案:

答案 0 :(得分:5)

来自Win32 API的

GetSystemPowerStatus应该提供您需要的信息:

SYSTEM_POWER_STATUS status;
if(GetSystemPowerStatus(&status)) {
    unsigned char battery = status.BatteryLifePercent;
    /* battery := 0..100 or 255 if unknown */
    if(battery == 255) {
        printf("Battery level unknown !");
    }
    else {
        printf("Battery level : %u%%.", battery);
    }
} 
else {
    printf("Cannot get the power status, error %lu", GetLastError()); 
}

有关包含信息的完整列表,请参阅SYSTEM_POWER_STATUS结构的文档。