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"

DevideID プロパティのみを読んでいる理由はありますか? すべてのガイダンスは大歓迎です。

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 に答える