所以我的方法如下:
PowerStatus powerStatus = SystemInformation.PowerStatus;
if (powerStatus.BatteryChargeStatus != BatteryChargeStatus.NoSystemBattery)
{
var batteryStatus = powerStatus.BatteryChargeStatus.ToString()
}
从我的测试系统中,我得到了各种各样的结果,例如:
High,
Low,
Charging,
High Charging
Low, Charging
Low, Critical
这是一个奇怪的...0?
我想它与 BatteryChargeStatus Enum 有关
最佳答案
他们错过了一个。来自底层文档 SYSTEM_POWER_STATUS操作系统声明:
The value is zero if the battery is not being charged and the battery capacity is between low and high
所以自己编一个吧,比如:
var status = SystemInformation.PowerStatus.BatteryChargeStatus;
if (status != BatteryChargeStatus.NoSystemBattery) {
var batteryStatus = status == 0 ? "Not charging" : status.ToString();
// etc...
}
关于c# - 调用 PowerStatus.BatteryChargeStatus.ToString() 有时会返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26124144/