2016-03-16 2 views
0

Как я могу получить данные Win32_DiskDrive буквой диска в C#? Сейчас у меня есть это:C# получить данные WMI Win32_DiskDrive с помощью буквы диска

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

Я уверен, что я должен был бы добавить и куда оператор в запросе, но я понятия не имею, как формировать его. DeviceID не делает трюк.

ответ

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) 
      { 
+0

Да, но проблема в том, что я проверил MSDN, и я ничего не видел о том, чтобы получить букву диска. Вот почему я спрашиваю здесь. –

+0

Тип DeviceIDData: string Тип доступа: только для чтенияКварианты: CIM_Key Адрес или другая идентифицирующая информация для уникального имени логического устройства. – ivansystems

Смежные вопросы