如何让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
例:
假设以下配置
\ local(本地计算机定义了3个打印队列,1是远程连接)
LPrinter1
LPrinter2
\远程 RPrinter1
\ remote(定义了2个打印队列的远程计算机)
RPrinter1
RPrinter2
\ other(其他一些计算机定义了1个打印队列)
OPrinter
结果是:
打印服务器= \ local
\当地 LPrinter1
\当地 LPrinter2
\远程 RPrinter1
打印服务器= \远程
\远程 RPrinter1
打印服务器= \ other
\远程 RPrinter1
我最好的猜测是,在GetPrintQueues()方法中发生了一些事情,导致打印服务器被重置为本地盒,因为只要它是网络上的有效计算机,打印服务器名称无关紧要。
没有找到相关结果
已邀请:
2 个回复
杰黔轿缺
凰葱崎济邯