1

我正在尝试使用 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 属性?非常感谢所有指导。

4

1 回答 1

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));
            }
        }
    }
于 2013-05-20T10:45:30.150 回答