2012-11-01 59 views
2

我已经写了下面的代码,它没有得到远程打印机名称任何人都可以帮我吗?如何获得C#中的所有网络打印机#

var searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM 
              Win32_Printer"); 

var results = searcher.Get(); 

IList<ManagementBaseObject> printers = new List<ManagementBaseObject>(); 
`enter code here` 
foreach (var printer in results) `enter code here`{ 
    if ((bool)printer["Network"]) `enter code here`{`enter code here` 
     printers.Add(printer);`enter code here` 
    } 
} 

回答

0

我认为您必须更新您的代码,如下所示。

private void btnGetPrinters_Click(object sender, EventArgs e) 
{ 
    // Use the ObjectQuery to get the list of configured printers 
    var oquery = new System.Management.ObjectQuery("SELECT * FROM Win32_Printer"); 

    var mosearcher = new System.Management.ManagementObjectSearcher(oquery); 

    System.Management.ManagementObjectCollection moc = mosearcher.Get(); 

    foreach (ManagementObject mo in moc) 
    { 
     System.Management.PropertyDataCollection pdc = mo.Properties; 

     foreach (System.Management.PropertyData pd in pdc) 
     { 
      if ((bool)mo["Network"]) 
      { 
       cmbPrinters.Items.Add(mo[pd.Name]); 
      } 
     } 
    } 
} 

我复制它从Retrieve a List of Installed Printers on the Network Using WMI, C# and VB.NET

相关问题