TC官方合作论坛
标题: 请帮忙帮忙利用GetSystemPowerStatus API 获取电池电量 [打印本页]
作者: gospeell 时间: 2016-1-17 11:25
标题: 请帮忙帮忙利用GetSystemPowerStatus API 获取电池电量
劳架有心人土帮忙利用 GetSystemPowerStatus获取电池电量的TC函数,翻阅好多资料还是不懂写。以上是这个API的一些介绍
一、简介
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;
复制代码 三、参数说明
CLineStatus 交流电源状态
| Value | Meaning |
| 0 | Offline
|
| 1 | Online
|
| 255 | Unknown status
|
BatteryFlag 电池充电状态。 可以包含一或多个以下值
| Value | Meaning |
| 1 | 高,电量大于66%
|
| 2 | 低,小于33%
|
| 4 | 极低,小于5%
|
| 8 | 充电中
|
| 128 | 没有电池
|
| 255 | 未知,无法读取状态
|
BatteryLifePercent 电池还有百分之几能充满.0~100,若未知则为255
Reserved1 保留,必须为0
BatteryLifeTime 秒为单位的电池剩余电量, 若未知则为-1
BatteryFullLifeTime 秒为单位的电池充满电的电量,若未知则为-1
作者: 1102509486 时间: 2016-1-17 12:53
变量 address = 数组("ACLineStatus"=数组("byte"=255,"value"=0),"BatteryFlag"=数组("byte"=255,"value"=0),"BatteryLifePercent"=数组("byte"=255,"value"=0),"Reserved1"=数组("byte"=255,"value"=0),"BatteryLifeTime"=数组("long"=1,"value"=0),"BatteryFullLifeTime"=数组("long"=1,"value"=0))
变量 ret=dllcall("Kernel32.dll","long","GetSystemPowerStatus","pstruct",address)
如果(ret)
消息框(address["BatteryLifePercent"]["value"])
结束
作者: gospeell 时间: 2016-1-17 13:58
谢谢大神
| 欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) |
Powered by Discuz! X3.1 |