C# 不使用WMI获取电池信息
有没有办法在没有WMI的情况下获得电池设计容量和满充电率? WMI不支持此值,因此我需要找到其他方法来获取它们 或者,也许有人有更好(更容易)的办法来计算C#中电池的磨损程度 顺便说一句 我尝试这样使用它,但只是返回nullC# 不使用WMI获取电池信息,c#,power-management,C#,Power Management,有没有办法在没有WMI的情况下获得电池设计容量和满充电率? WMI不支持此值,因此我需要找到其他方法来获取它们 或者,也许有人有更好(更容易)的办法来计算C#中电池的磨损程度 顺便说一句 我尝试这样使用它,但只是返回null ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT DesignCapacity FROM Win32_Battery"); foreach (ManagementO
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_电池
DesignCapacity
可从BatteryStaticData查询
FullChargeCacity
可从电池fullchargedcapacity查询
您还需要在代码中为查询使用不同的作用域。这些类位于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);
}
}
}
下载WMI资源管理器以运行和测试WMI查询,以便您知道信息可用:WMI的意义在于您不必亲自与BIOS对话。你不想做的事。拥有未实现的WMI属性和方法并不少见,您必须从机器制造商处获得更新的WMI提供程序。如果可用,通常不是。所以没有其他方法获取此数据?如果WMI不支持此属性,并且机器制造商不提供任何WMI更新,那么获取此类数据的其他方法是什么?我想知道windows batter状态是如何工作的(状态托盘中的东西)。它不使用WMI吗?如果没有,它使用什么?(它也不会“与BIO对话”)如果它使用WMI,为什么不能复制?我已经找到了一件事可以解决我的所有问题,但定价说服我再次搜索:)所以问题仍然存在,如何从系统中获取此值??