首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较PrintQueue以确定默认打印队列

比较PrintQueue以确定默认打印队列
EN

Stack Overflow用户
提问于 2014-06-10 05:19:54
回答 2查看 1.1K关注 0票数 0

由于this问题的帮助,我正在检索默认的打印队列。我也能确定DefaultPrintQueue

但是如何正确地确定打印队列列表中的打印队列与DefaultPrintQueue相等?

我试过:

代码语言:javascript
复制
var dq = LocalPrintServer.GetDefaultPrintQueue();
foreach(PrintQueue pq in pqcOnLocalServer)
{
    if(pq.Equals(dq))
    {
        System.Console.WriteLine("Found default"); 
    }
}

但这两个物体显然是不一样的。然后,我假设我可以比较每个PrintQueue的属性和默认的属性,但是应该使用什么属性来确定,100%,两个PrintQueue是指同一个PrintQueue

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-30 14:47:54

此问题在专家Exchange或服务器Exchange上可能做得很好。我发现,打印服务器将不允许打印机服务器上已有名称的打印机。也就是说,打印机必须在每台服务器上都有一个唯一的名称。

尽管如此,用户必须小心,不仅要比较打印机名称,以确保它们是唯一的,而且还必须比较它们所在的打印机服务器。例如,当枚举连接打印机时。在有\\PRNTSRVR1\HQ_LaserJet01\\PRNTSRVR2\HQ_LaserJet01的情况下,计算机可以连接到两个打印服务器;因此,检查连接的服务器也很重要。

票数 0
EN

Stack Overflow用户

发布于 2014-06-10 09:38:13

尝试使用LocalPrintServer.DefaultPrintQueue属性获取默认打印队列并比较PrintQueue.FullName。这就否定了迭代LocalPrintServer PrintQueueCollection的需要。

代码语言:javascript
复制
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,可以尝试下面的实现。

代码语言:javascript
复制
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);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24133390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档