Как получить System.Printing.PrintServer.GetPrintQueues для возврата списка очередей печати с удаленного сервера?
Я пытаюсьполучить список очередей печати, доступных на удаленном сервере.
В конечном итоге это нужно будет выполнить из ASP.NET, но сейчас я бы согласился на работу консольного приложения.
Когда я создаю экземплярSystem.Printing.PrintServer класс, используя путь к удаленному серверу, я могу получить основную информацию о сервере печати. Но когда я звонюМетод GetPrintQueues Я получаю только те очереди, которые определены в локальной коробке, Неважно, что я использую для удаленного устройства.
КодImports System.Printing
Module Module1
Sub Main()
ListPrintQueues("\\local")
ListPrintQueues("\\remote")
ListPrintQueues("\\other")
End Sub
Sub ListPrintQueues(ByVal server As String)
Dim ps As New PrintServer(server)
Console.WriteLine("Printer Server=" & ps.Name)
Dim flags() As EnumeratedPrintQueueTypes = {EnumeratedPrintQueueTypes.Connections, EnumeratedPrintQueueTypes.Local}
Dim queues As PrintQueueCollection = ps.GetPrintQueues(flags)
For Each pq As PrintQueue In queues
Console.WriteLine(pq.FullName)
Next
Console.WriteLine()
End Sub
End Module
Пример:Предполагая следующую конфигурацию
\\местный (Локальный компьютер с 3 определенными очередями печати, 1 - удаленное соединение)LPrinter1LPrinter2\\ удаленный \ RPrinter1\\дистанционный пульт (Удаленный компьютер с 2 очередями печати)RPrinter1RPrinter2\\Другой (Какой-то другой компьютер с определенной очередью печати)OPrinter
Результаты:
Print Server=\\local \\local\LPrinter1 \\local\LPrinter2 \\remote\RPrinter1 Print Server=\\remote \\remote\RPrinter1 Print Server=\\other \\remote\RPrinter1
Мое предположение состоит в том, что внутри метода GetPrintQueues () происходит что-то, что заставляет сервер печати быть сброшенным в локальное окно, поскольку не имеет значения, какое имя сервера печати, если это действительный компьютер в сети.