我正在尝试使用c#为Windows 8创建一个应用程序来显示我当前的电池电量。我正在尝试查询win32_battery类的相关属性,但我得到了一个不寻常的结果。这是我的代码:
private void btn1_Click(object sender, EventArgs e)
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Battery");
ManagementObjectCollection collection = searcher.Get();
foreach (ManagementObject obj in collection)
{
txtBox.AppendText(obj.ToString() + "\r\n");
};
}
我在txtBox中的唯一结果是
\\MIKESLAPTOP\root\cimv2:Win32_Battery.DeviceID=" ASUSTeKX401-44"
为什么我只阅读theDevideID属性的任何想法?非常感谢所有指导。
答案 0 :(得分:2)
这是预期的输出。您忘记枚举查询的属性。使它看起来类似于:
foreach (ManagementObject obj in searcher.Get()) {
foreach (var prop in obj.Properties) {
if (prop.Value != null) {
txtBox.AppendText(string.Format("{0} = {1}", prop.Name, prop.Value));
}
}
}