1

WMI のサブクラスをインスタンス化する例を数多く見てきましたWin32 Classes。たとえば、Win32_Battery クラスに対してクエリを実行すると、次のようになります。

using System.Management.Instrumentation;
...
ManagementClass mgmt = new ManagementClass("Win32_Battery");
ManagementObjectCollection o = mgmt.getInstances();

ただし、このクエリは失敗し、不明なクラスであり、インスタンス化できないことがわかります。

私は何を間違っていますか?

4

1 に答える 1

1

Win32_PowerMeter は既定の名前空間にありません。正しい名前空間を示すWMI Code Creator ユーティリティによって生成されたサンプル コード:

    ManagementObjectSearcher searcher = 
        new ManagementObjectSearcher("root\\CIMV2\\power", 
        "SELECT * FROM Win32_PowerMeter"); 

    foreach (ManagementObject queryObj in searcher.Get())
    {
        Console.WriteLine("-----------------------------------");
        Console.WriteLine("Win32_PowerMeter instance");
        Console.WriteLine("-----------------------------------");
        Console.WriteLine("DeviceID: {0}", queryObj["DeviceID"]);
    }
于 2012-06-12T09:25:51.177 に答える