【发布时间】:2011-12-08 18:19:57
【问题描述】:
我有一个程序可以读取 Windows 中的电池状态,如下所示(简化代码):
#include <iostream>
#include <windows.h>
using namespace std;
int main(int argc, char *argv[]) {
SYSTEM_POWER_STATUS spsPwr;
if( GetSystemPowerStatus(&spsPwr) ) {
cout << "\nAC Status : " << static_cast<double>(spsPwr.ACLineStatus)
<< "\nBattery Status : " << static_cast<double>(spsPwr.BatteryFlag)
<< "\nBattery Life % : " << static_cast<double>(spsPwr.BatteryLifePercent)
<< endl;
return 0;
} else return 1;
}
spsPwr.BatteryLifePercent 以百分比形式保存剩余电池电量,其类型为BYTE,这意味着它只能显示整数读数(即int)。我注意到一个名为BatteryBar 的应用程序可以以浮点值显示电池百分比。
BatteryBar 是一个 .NET 应用程序。如何使用带有 Windows API 的纯 C/C++ 以浮点/双精度形式获取电池百分比读数? (最好能用MinGW编译的方案)
【问题讨论】:
-
你的意思是你想要更精确?还是您的意思是您希望 BatteryLife 为 1?
-
请使用 Stack Overflow 的发布工具正确上传该图片;您发布链接的图片不能被热链接。
-
@Tomalak:我想得到一个显示十进制值的读数(例如 22.5、87.5)。由于我的代表,我不允许发布图片。
-
然后至少发布一个有效的 URL。
标签: c++ winapi power-management