ComboBox的例外情况

时间:2012-03-09 09:45:58

标签: c# list combobox drive

我正在寻找一种在计算机上获取设备列表时删除物理磁盘0的方法。

执行的命令如下:

ManagementObjectSearcher mosDisks = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
        foreach (ManagementObject moDisk in mosDisks.Get())
        {
            driveList.Items.Add(moDisk["Model"].ToString());
        }

谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

ManagementObjectSearcher mosDisks = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
    foreach (ManagementObject moDisk in mosDisks.Get())
    {
        if(!moDisk["DeviceId"].ToString().Contains("PHYSICALDRIVE0"))
        {
            driveList.Items.Add(moDisk["Model"].ToString());
        }
    }

或者更简单地说,将您的WQL更改为:

SELECT * FROM Win32_DiskDrive WHERE NOT NAME LIKE '%PHYSICALDRIVE0'

答案 1 :(得分:0)

如何才能可靠地识别物理磁盘驱动器0?

如果您注释掉添加到驱动器列表组合框,而是添加下面的代码片段,您可以看到ManagementObject的属性并决定使用哪个:

foreach(var prop in moDisk.Properties)  
{  
  Console.WriteLine("{0}: {1}", prop.Name, prop.Value);  
}  

例如(我没有足够的驱动器确定)你可能想要排除索引0,你可以通过在循环中检查而不是添加到组合框或更新你的选择来做:

select * from Win32_DiskDrive where Index <> 0

您也可以选择型号而不是*