C++ 读取浮动/双模式下的笔记本电脑电池状态
我有一个在Windows中读取电池状态的程序,如下所示(简化代码):C++ 读取浮动/双模式下的笔记本电脑电池状态,c++,winapi,power-management,C++,Winapi,Power Management,我有一个在Windows中读取电池状态的程序,如下所示(简化代码): #包括 #包括 使用名称空间std; int main(int argc,char*argv[]){ 系统电源状态spsPwr; if(GetSystemPowerStatus和spsPwr)){ 正如你所说,Windows API。还有,正如你所暗示的,.NET 这意味着,要使用浮点值,您必须使用.NET。也就是说,.NET值介于0.0和1.0之间,并且从文档中不清楚您是否实际获得了更高的精度。该工具的统计信息是“”,因此我
#包括
#包括
使用名称空间std;
int main(int argc,char*argv[]){
系统电源状态spsPwr;
if(GetSystemPowerStatus和spsPwr)){
正如你所说,Windows API。还有,正如你所暗示的,.NET
这意味着,要使用浮点值,您必须使用.NET。也就是说,.NET值介于0.0
和1.0
之间,并且从文档中不清楚您是否实际获得了更高的精度。该工具的统计信息是“”,因此我怀疑它是否使用了的直接值
就我个人而言,我很难想象浮点精度会有什么好处,但无论如何,你可以用它来看看他们是如何做到的,或者你也可以问他们是如何做到的。NET版本实际上没有为你提供更多的精度。它只是将电池寿命百分比
字节值除以100.0,然后返回下面是.NET中getter的内容
public float BatteryLifePercent
{
get
{
this.UpdateSystemPowerStatus();
float num = ((float) this.systemPowerStatus.BatteryLifePercent) / 100f;
if (num <= 1f)
{
return num;
}
return 1f;
}
}
public float电池寿命百分比
{
得到
{
this.updateSystemStatus();
float num=((float)this.systemPowerStatus.BatteryLifePercent)/100f;
如果(num您可以使用WMI获取此信息。请尝试使用BatteryFullChargedCapacity
和BatteryStatus
类都是root\WMI
命名空间的一部分
要获得以百分比表示的剩余电池电量,只需使用RemainingCapacity
(电池状态)和FullChargedCapacity
(电池FullChargedCapacity)属性即可
剩余的电池电量百分比为
(剩余容量*100)/完全充电容量
例如,如果FullChargedCapacity属性报告一个5266
值,而RemainingCapacity报告一个5039
,则重用率将为9568932776%
如果你不知道如何从C++访问WMI读取这些文章
您的意思是希望获得更高的精度?还是希望BatteryLife超过1?请使用Stack Overflow的post工具正确上传该图像;您发布链接的图像不能进行热链接。@Tomalak:我想获得显示小数点的读数(例如22.5、87.5).由于我的代表,我不允许发布图片。然后至少发布一个有效的URL。
public float BatteryLifePercent
{
get
{
this.UpdateSystemPowerStatus();
float num = ((float) this.systemPowerStatus.BatteryLifePercent) / 100f;
if (num <= 1f)
{
return num;
}
return 1f;
}
}