Важное примечание: GetPrintQueues
возвращает не все принтеры, установленные с точки зрения пользователя - только те, которые «принадлежат» локальному серверу.
Как ни странно, LocalPrintServer.DefaultPrintQueue
не обязательно содержится в GetPrintQueues()
, даже если оно происходит от объекта LocalPrintServer
.
Если вы используете System.Drawing.Printing.PrinterSettings.InstalledPrinters
, то есть string[]
, вы получите список всех принтеров, установленных с точки зрения пользователя.
Некоторые из них могут быть на удаленных компьютерах, если вы установили удаленный принтер (на сервере печати). Если это сетевой принтер, доступный по IP, тогда он все равно будет локальным принтером:
"Send To OneNote 2010"
"Microsoft XPS Document Writer"
"HP LaserJet P2050 Series PCL6"
"HP LaserJet 1020"
"Fax"
"\\\\ike\\LUCY"
"\\\\shipping\\HP LaserJet 1020"
Чтобы получить очередь печати на удаленном сервере, вам нужно сделать:
new PrintServer("\\ike").GetPrintQueue("LUCY")
Да, вам нужно разобрать это самостоятельно.