尝试使用该LocalPrintServer.DefaultPrintQueue
属性获取默认打印队列并比较 PrintQueue.FullName。这消除了遍历LocalPrintServer
PrintQueueCollection
.
LocalPrintServer printServer = new LocalPrintServer(PrintSystemDesiredAccess.AdministrateServer);
PrintQueue pq = printServer.DefaultPrintQueue;
PrintQueue dq = LocalPrintServer.GetDefaultPrintQueue();
if (dq != null && pq.FullName.Equals(dq.FullName))
{
Console.WriteLine("Found default print Queue: {0}", dq.FullName);
}
如果您仍然需要迭代,LocalPrintServer
PrintQueueCollection
您可以尝试下面的实现。
LocalPrintServer printServer = new LocalPrintServer(PrintSystemDesiredAccess.AdministrateServer);
PrintQueue dq = LocalPrintServer.GetDefaultPrintQueue();
foreach (PrintQueue pq in printServer.GetPrintQueues())
{
if (dq != null && pq.FullName.Equals(dq.FullName))
{
Console.WriteLine("Found default print Queue: {0}", dq.FullName);
}
}