我正在尝试获取充电百分比,并且显示与Windows完全相同的文本-未充电,已充满电,正在充电
我正在使用wmi查询。
我不想对这些文本进行硬编码,因为每次都不同地工作。
有时会显示95%-不收费,或者可以收费。
有什么办法可以得到结果文本?
我所能做的,只是检查它是否已100%充电,才能显示“充满电”。
但是对于96%的用户,它的工作方式有所不同,有时Windows显示“已充电”或“未充电”
最佳答案
使用Win32_Battery类:
static string GetBatteryStatus() {
ManagementScope scope = new ManagementScope("//./root/cimv2");
SelectQuery query = new SelectQuery("Select BatteryStatus From Win32_Battery");
using(ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query)) {
using(ManagementObjectCollection objectCollection = searcher.Get()) {
foreach(ManagementObject mObj in objectCollection) {
PropertyData pData = mObj.Properties["BatteryStatus"];
switch((Int16)pData.Value) {
//...
case 2:return "Not Charging";
case 3:return "Fully Charged";
case 4:return "Low";
case 5: return "Critical";
//...
}
}
}
}
return string.Empty;
}