You can use an ObjectQuery using System.Management to retrieve printers on the network, like this
System.Management.ObjectQuery query =
new System.Management.ObjectQuery("SELECT * FROM Win32_Printer");
System.Management.ManagementObjectSearcher searcher =
new System.Management.ManagementObjectSearcher(oquery);
System.Management.ManagementObjectCollection collection = searcher.Get();
foreach (ManagementObject mo in collection)
{
System.Management.PropertyDataCollection pdc = mo.Properties;
foreach (System.Management.PropertyData pd in pdc)
{
if ((bool)mo["Network"])
{
cmbPrinters.Items.Add(mo[pd.Name]);
}
}
}
Hope this helps