我有一个程序可以读取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;
}
Run Code Online (Sandbox Code Playgroud)
spsPwr.BatteryLifePercent电池的剩余电量以百分比表示,属于类型BYTE,表示只能以整数显示读数(即int)。我注意到一个名为BatteryBar的应用程序可以在浮点值中显示电池百分比。
BatteryBar是一个.NET应用程序。如何使用带有Windows API的纯C / C ++以浮点/双精度获取电池百分比读数?(最好使用MinGW编译的解决方案)