不使用WMI即可获取电池信息

| 有没有办法在没有WMI的情况下获得电池的DesignCapacity和FullChargeCpacity? WMI不支持此值,因此我需要找到其他方式来获取它们。 还是有人有更好(更轻松)的主意来获取C#中电池的磨损程度? BTW 我尝试以这种方式使用它,但只返回了null
ManagementObjectSearcher query = 
        new ManagementObjectSearcher(\"SELECT DesignCapacity FROM Win32_Battery\");

foreach (ManagementObject queryObj in query.Get())
{
    string dc = Convert.ToString(queryObj.GetPropertyValue(\"DesignCapacity\"));
    label1.Text = dc + \" mAh\";
}
谢谢
已邀请:
为了获得这些特定的值,您需要针对不同的类而不是win32_battery进行单独的查询。 可以从BatteryStaticData中查询“ 1” 可以从BatteryFullChargedCapacity查询
FullChargeCacity
您还需要在代码中为查询使用其他范围。这些类在
root/WMI
中找到,而不是在
root/cimv2
中找到
string scope = \"root/WMI\";
string query = \"SELECT DesignedCapacity FROM BatteryStaticData\";

ManagementObjectSearcher batteriesQuery = new ManagementObjectSearcher(scope, query);

ManagementObjectCollection batteries = batteriesQuery.Get();

foreach (ManagementObject battery in batteries)
{
    if (battery != null)
    {
        foreach (var property in battery.Properties)
        {
            Console.Log(\"Property name: \" + property.Name + \" Property value: \" + property.Value);
        }
    }
}

要回复问题请先登录注册