0

使用 Java JNA Library using How to get the remaining battery life in a Windows system? 作为参考,我做了一个程序。不幸的是,http: //msdn.microsoft.com/en-us/library/aa373232.aspx中描述的 BatteryLife Percent 函数显示为 -1 或未知。谁能解释一下如何让它知道?我知道这似乎是一个愚蠢的问题,但我似乎无法让它发挥作用。任务栏上的电池图标显示百分比精细,并且由于它也很可能使用相同的功能,我认为 JNA 库可能有问题。

4

1 回答 1

0

我有同样的问题,这就是我解决它的方法。我使用了与您相同的解决方案,并发现 getFieldOrder() 中的字段顺序很重要,否则您会得到不正确的输出。它必须与您使用的 SYSTEM_POWER_STATUS 结构相同。Reserved1 的位置似乎无关紧要:

@Override
protected List getFieldOrder() {
    ArrayList<String> fields = new ArrayList<String>();
    fields.add("ACLineStatus");
    fields.add("BatteryFlag");
    fields.add("BatteryLifePercent");   
    fields.add("BatteryLifeTime");
    fields.add("BatteryFullLifeTime");
    fields.add("Reserved1");
    return fields;
}
于 2013-07-15T15:43:55.690 回答