Исключение для ComboBox - PullRequest
       14

Исключение для ComboBox

0 голосов
/ 09 марта 2012

Я ищу способ удаления физического диска 0 при получении списка устройств на компьютере.

Выполненная команда выглядит следующим образом:

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

спасибоВы за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 09 марта 2012

Как получается, что вы можете надежно распознать физический диск 0?

Если вы закомментируете добавление в список со списком накопителей и вместо этого добавляете фрагмент кода ниже, вы можете увидеть свойства ManagementObject и решить, какой из них использовать:

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

Например (у меня недостаточно дисков, чтобы быть уверенным), вы можете исключить индекс 0, который вы можете сделать, проверив внутри цикла и не добавляя в комбинированный список, или обновив свой выбор:

select * from Win32_DiskDrive where Index <> 0

Также вы можете просто выбрать модель вместо *

0 голосов
/ 09 марта 2012
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'
...