马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 无符号整形 于 2016-9-17 09:37 编辑
@拈花小仙 @康小泡 @迷雾少年 @小甲鱼 @~风介~ (排名不分先后哈)
昨天我发了MFC电源监测器,关键部分童鞋门看出来了吗?
看不出来也没事,关键部分在MFCApplication10Dlg.cpp的第168~239行。
这个是MSDN,英文比较好的可以去看看
好,我们进入正题。
GetSystemPowerStatus原型:BOOL WINAPI GetSystemPowerStatus(
_Out_ LPSYSTEM_POWER_STATUS lpSystemPowerStatus
);
lpSystemPowerStatus
一个指向SYSTEM_POWER_STATUS结构的参数,用于接收状态信息。
那么,SYSTEM_POWER_STATUS又是什么结构呢?
她的原型:typedef struct _SYSTEM_POWER_STATUS {
BYTE ACLineStatus;
BYTE BatteryFlag;
BYTE BatteryLifePercent;
BYTE SystemStatusFlag;
DWORD BatteryLifeTime;
DWORD BatteryFullLifeTime;
} SYSTEM_POWER_STATUS, *LPSYSTEM_POWER_STATUS;
ACLineStatus:交流电源状态。这个成员可以是下列值之一:
值 | 含义 | 0 | 已经通电 | 1 | 已经断电 | 255 | 未知 |
BatteryFlag:电池充电状态。这个成员可以包含一个或多个以下的值。
注意:多个值可以通过按位或同时指定!
值 | 含义 | 1 | 高电量(电池电量>66%) | 2 | 低电量(电池电量>33%) | 4 | 极低电量(电池电量>5%) | 8 | 充电中 | 128 | 没有电池 | 255 | 未知 |
注意:如果值是0,说明电池没有充电并且电量在低与高之间。
BatteryLifePercent:电池剩余电量百分比,范围为0~100,如果是255则为未知
SystemStatusFlag:可以是下列值:
值 | 含义 | 0 | 电池保护被关闭 | 1 | 电池保护被开启,会尽可能的节约能源 |
BatteryLifeTime:剩余电池续航时间的秒数,如果是-1,则表示剩余秒数是未知的或者设备被连接到交流电源。
BatteryFullLifeTime:电池充满电时的电池寿命,如果是-1,则表示剩余秒数是未知的或者设备被连接到交流电源。
然后就介绍完了…… |