CIM_Battery WMI 类没有实例

CIM_Battery WMI 类没有实例

我正在尝试创建一个 C# 应用程序来记录一段时间内的电池百分比,为此我一直在尝试使用 .NET WMI API。我在 MSDN 上查找,发现有一个名为的 WMI 类CIM_Battery,并证实了它的存在wbemtest.exe

经过仔细检查wbemtest.exe,我发现该类CIM_Battery没有任何我可以读取的实例。

CIM_Battery 类的屏幕截图

这是正常现象吗,还是我的系统坏了?

答案1

不确定为什么这不起作用,但有另一种方法可以做到:

System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/C powercfg /batteryreport";
process.StartInfo = startInfo;
process.Start();

这会将电池寿命输出到文件:C:/Windows/System32/battery-report.html

然后,您可以抓取该页面。这有点过头了,但其中可能包含更多可用于诊断的数据。

编辑:也是powershell.net (System.Management.Automation) 程序集中的一个类。因此,您可以使用以下行创建 .ps1: (Get-WmiObject win32_battery).estimatedChargeRemaining

PowerShell psinstance = PowerShell.Create();
psinstance.AddScript(scriptPath);
var results = psinstance.Invoke();

编辑 2:CIM(通用信息模型)类是 WMI 类所基于的父类。win32_xxx类监视和管理系统硬件和功能,位于 CIM 中。不要从CIM_Battery父类中提取,win32_battery而是从类中提取。

相关内容