电池百分比

时间:2013-02-28 00:51:41

标签: java windows-7 jna battery

使用{J}库作为参考使用Java JNA库,我制作了一个程序。不幸的是,How to get the remaining battery life in a Windows system?中描述的BatteryLife Percent函数显示为-1或未知。任何人都可以解释如何让它知道吗?我知道这似乎是一个愚蠢的问题,但我似乎无法使它成功。任务栏上的电池图标显示百分比很好,因为它也很可能使用相同的功能,我认为JNA库可能有问题。

1 个答案:

答案 0 :(得分: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;
}