试图访问电池电量,c#

时间:2013-05-20 06:19:29

标签: c# wmi

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

1 个答案:

答案 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));
            }
        }
    }