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