C#按驱动器号获取WMI Win32_DiskDrive数据

时间:2016-03-16 19:32:25

标签: c# wmi

如何通过C#中的驱动器号获取Win32_DiskDrive数据? 现在我有了这个:

ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT SerialNumber,DeviceID, PNPDeviceID, Caption FROM Win32_DiskDrive WHERE InterfaceType='USB'");
ManagementObjectCollection drive = searcher.Get();

我确定我需要在查询中添加AND to WHERE语句,但我不知道如何形成它。 DeviceID不起作用。

1 个答案:

答案 0 :(得分:0)

我在诊断应用程序中做同样的事情。我会看看哪些是字符串,boolean,int等。并创建一个iDictionary并将其编程到每个。

如果你看看你所做的所有事情的msdn,它会说出每一个是什么。

我遇到了电池,例如我必须使用提供的代码创建字典列表。

要提取值,您必须查看流程代码

示例:

1 =电池很关键。 2 =电池正在充电。

或者它会有一个Ox12,你还必须确保它们不会过时。如果我没有弄错,DeviceID已经过时了。你的代码应该是这样的例子:

    private void GetBatteryStatus()
    {
        System.Management.ManagementClass wmi = new System.Management.ManagementClass("Win32_Battery");
        var allBatteries = wmi.GetInstances();


        foreach (var battery in allBatteries)
        {
            int estimatedChargeRemaining = Convert.ToInt32(battery["EstimatedChargeRemaining"]);
            if (estimatedChargeRemaining == 80)
            {