2013-12-14 3 views
0

Я использую ManagementObjectSearcher для загрузки всех принтеров, доступных в сети. Там все принтеры возвращаются в ManagementObjectCollection. В любом случае, чтобы узнать все возвращенные детали?Найти доступные данные в ManagementObject

Я использовал отладку C# для предварительного просмотра объекта, но он не отображает все данные там. Я хочу знать, что доступно, кроме Printers [Name], Printers [Local], Printers [Network]. Есть ли способ сделать это?

Код

System.Management.ManagementScope objMS = 
      new System.Management.ManagementScope(ManagementPath.DefaultPath); 
     objMS.Connect(); 

     SelectQuery objQuery = new SelectQuery("SELECT * FROM Win32_Printer"); 
     ManagementObjectSearcher objMOS = new ManagementObjectSearcher(objMS, objQuery); 
     System.Management.ManagementObjectCollection objMOC = objMOS.Get(); 
     foreach (ManagementObject Printers in objMOC) 
     { 
      System.Management.PropertyDataCollection pdc = Printers.Properties; 
      if (Convert.ToBoolean(Printers["Local"]))  // LOCAL PRINTERS. 
      { 
       comboBox8.Items.Add(Printers["Name"]); 
      } 
      if (Convert.ToBoolean(Printers["Network"]))  // ALL NETWORK PRINTERS. 
      { 
       comboBox9.Items.Add(Printers["Name"]); 
      } 
     } 

ответ

0

Генерация сильно типизированных классов для Win32_Printer, которые покажут вам все, что вам нужно.

http://msdn.microsoft.com/en-us/library/2wkebaxa(v=vs.110).aspx - Mgmtclassgen.exe (Управление строго типизированных генератор класса)

+0

Эй мат. Я нахожу ошибку ** Тип 'logicalDisk' не определен **, потому что я не могу использовать 'Imports ROOT.CIMV2.Win32'. ты можешь помочь мне с этим? –

0

Вы можете перечислить ManagementBaseObject.Properties свойства и PropertyData.Qualifiers.

foreach (PropertyData property in properties) 
    { 
     Console.WriteLine(property.Name); 

     foreach (QualifierData q in property.Qualifiers) 
     { 
      if(q.Name.Equals("Description")) 
      { 
       Console.WriteLine(
        processClass.GetPropertyQualifierValue(
        property.Name, q.Name)); 
      } 

     } 
     Console.WriteLine(); 

    } 

От MSDN

+0

Это тоже работало ... Спасибо .. –

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