一个找了很久的API函数---GetSystemPowerStatus
来源:互联网 发布:plc编程会用到哪些函数 编辑:程序博客网 时间:2024/05/01 12:14
昨天一不小心就发现了这个找了很久的一个API函数。过去一直想写一个判断笔记本是直流通电还是电池通电来写一个小程序,硬是没找到这个而终止了想法,今天发现了原来WindowsAPI还有这么好一个函数:GetSystemPowerStatus。
一、简介
GetSystemPowerStatus 函数返回系统电源的一个电量状态,这个状态显示系统是否运行在AC(交流电)或者DC(直流电)电流下。电池当前是否在充电或者电量的剩余使用时间。
二、原型
BOOL GetSystemPowerStatus( LPSYSTEM_POWER_STATUS lpSystemPowerSatus // [out] Pointer to a SYSTEM_POWER_STATUS structure that receives status information. );SYSTEM_POWER_STATUS的定义:
typedef struct _SYSTEM_POWER_STATUS { BYTE ACLineStatus; BYTE BatteryFlag; BYTE BatteryLifePercent; BYTE Reserved1; DWORD BatteryLifeTime; DWORD BatteryFullLifeTime; } SYSTEM_POWER_STATUS, *LPSYSTEM_POWER_STATUS;
三、参数说明
- 0
Offline
- 1
Online
- 255
Unknown status
BatteryFlag 电池充电状态。 可以包含一或多个以下值
- 1
高,电量大于66%
- 2
低,小于33%
- 4
极低,小于5%
- 8
充电中
- 128
没有电池
- 255
未知,无法读取状态
BatteryLifePercent 电池还有百分之几能充满.0~100,若未知则为255
Reserved1 保留,必须为0
BatteryLifeTime 秒为单位的电池剩余电量, 若未知则为-1
BatteryFullLifeTime 秒为单位的电池充满电的电量,若未知则为-1
四、简单应用
#include <Windows.h>#include <iostream>using namespace std;int _tmain(int argc, _TCHAR* argv[]){SYSTEM_POWER_STATUS sysPowerStatus;GetSystemPowerStatus(&sysPowerStatus);cout<<"电源状态: "<<(int)sysPowerStatus.ACLineStatus<<endl;cout<<"电池状态: "<<(int)sysPowerStatus.BatteryFlag<<endl;cout<<"电量百分比: "<<(int)sysPowerStatus.BatteryLifePercent<<" %"<<endl;cout<<"剩余能量: "<<sysPowerStatus.BatteryLifeTime<<" 秒"<<endl;cout<<"总能量: "<<sysPowerStatus.BatteryFullLifeTime<<" 秒"<<endl;return 0;}
- 一个找了很久的API函数---GetSystemPowerStatus
- 找了很久的bug
- 装apache找了很久的错误
- 找了很久
- 发一个找了很久的acadia的接口图吧
- 飞秋官方下载 找了很久的
- 一个感动了我很久的故事
- 很久了,有一个软件的构想。
- 一个搞了很久的SQL
- 解决了一个困惑很久的bug
- 一个放了很久的网站程序
- 困惑了很久的函数D3DXCreateTextureFromFileInMemoryEx
- jquery 一个checkbox全选与反选(找了很久,终于找到了)
- 一个设定打印走向的函数,别人写的,借花献佛,同时没找哪个API是函数用的,都复制下来了
- 找了很久的低功耗蓝牙程序开发,终于在国外找到了部分资料
- 很久很久的不上这个地方了
- 有感于发现了一个隐藏很久的错误--思维定势
- 分享一个用了很久的php日志类
- Python 3.2 的程序转换成exe的总结
- ContentProvider再学习:注册观察者
- 匈牙利算法
- flume ng 1.3 安装配置方法
- 学习日记:如何写Makefile(一)
- 一个找了很久的API函数---GetSystemPowerStatus
- 黑马程序员_多线程(下)
- LCD 调试总结
- sql server数据库备份
- ViewPager,ActionBar,Fragment应用--模仿通讯录滑动效果
- 清表后 表空间缩减情况
- 安卓初探
- VxWorks设备驱动开发指南(二)--VxBus And VxBus Device Driver
- 线程池的简单实现