Important Note. GetPrintQueues does not return all printers installed from the user's point of view - only those that belong to the "local" local server.
More strange, but LocalPrintServer.DefaultPrintQueue not necessarily contained inside GetPrintQueues() , even if it comes from a LocalPrintServer object.
If you use System.Drawing.Printing.PrinterSettings.InstalledPrinters , which is string[] , you will get a list of all printers installed from the user's point of view.
Some of them may be on remote computers if you have installed a remote printer (on the print server). If it is an IP-accessible network printer, it will still be a local printer:
"Send To OneNote 2010" "Microsoft XPS Document Writer" "HP LaserJet P2050 Series PCL6" "HP LaserJet 1020" "Fax" "\\\\ike\\LUCY" "\\\\shipping\\HP LaserJet 1020"
To get a printout on a remote server, you need to do:
new PrintServer("\\ike").GetPrintQueue("LUCY")
Yes, you will need to disassemble it yourself.
Simon_Weaver
source share