0

Java JNA ライブラリを使用して、Windows システムで残りのバッテリ寿命を取得するにはどうすればよいですか? 参考までに、プログラムを作りました。残念ながら、 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 に答える