у нас есть сервер печати и множество принтеров. Мы обращаемся к ним следующим образом:Получите имена принтеров на printserver
\\print-server-name\printer1
\\print-server-name\printer1_color
\\print-server-name\printer2
... и т.п.
Теперь мне нужен список всех принтеров на этом сервере. До сих пор я мог найти только все принтеры, установленные локально на машине. Я нашел это в то время погуглит, который дал мне только локальные принтеры Aswell:
PrintServer lps = new PrintServer();
PrintQueueCollection prQueue = lps.GetPrintQueues(new[] { EnumeratedPrintQueueTypes.Connections });
liServerPrinterNames = (from printer in prQueue select printer).ToList();
На самом деле мне нужно только имена всех принтеров на сервере в виде массива строк, не нужно даже объекты для взаимодействия, только имена всех принтеров в виде строки. Это возможно? Как?
Спасибо за любую помощь заранее!
Посмотрите на конструкторах; 'new PrintServer (@" \\ print-server-name ");' –
Привет, Алекс. Спасибо за ваш ответ. К сожалению, это решение вернуло только локальные принтеры. – Kai
Я нашел еще один сайт с примером здесь: [link] (http://www.encodedna.com/2013/04/show-printers-using-wmi.htm) Но даже пример там, включая этот цикл: 'if (Convert.ToBoolean (Принтеры [" Network "])) // ВСЕ СЕТЕВЫЕ ПРИНТЕРЫ. { cmbNetworkPrinters.Items.Add (Принтеры ["Name"]); } ' ... дал мне только локальные принтеры. Может ли это быть каким-то политическим ограничением? – Kai