C在Windows 7下获得电池寿命

use*_*355 5 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);
}
Run Code Online (Sandbox Code Playgroud)

zak*_*ter 5

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

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()); 
}
Run Code Online (Sandbox Code Playgroud)

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