如何从打印机队列中检索作业列表或作业数量

本文关键字:作业 列表 检索 打印机 队列 | 更新日期: 2023-09-27 17:49:33

我正在寻找一种从特定打印机获得列表或工作数量的方法。在最好的情况下,我希望有一个"作业对象",它代表一个打印作业及其在打印队列中的名称。

这是必需的,因为我需要监视打印机的状态,以便我可以用新一批文档重新填充打印队列,而不会溢出打印假脱机程序

提前感谢!

编辑:添加解决方案代码片段

private int GetNumberOfPrintJobs()
{
    LocalPrintServer server = new LocalPrintServer();
    PrintQueueCollection queueCollection = server.GetPrintQueues();
    PrintQueue printQueue = null;
    foreach (PrintQueue pq in queueCollection)
    {
        if (pq.FullName == PrinterName)
            printQueue = pq;
    }
    int numberOfJobs = 0;
    if (printQueue != null)
        numberOfJobs = printQueue.NumberOfJobs;
    return numberOfJobs;
}

如何从打印机队列中检索作业列表或作业数量

你可以在系统中使用。net 3.0 PrintQueue类。打印名称空间。它的NumberOfJobs属性告诉您队列中有多少作业,GetPrintJobInfoCollection()返回所有作业的详细信息。注意,它没有任何事件告诉您作业集合发生了变化,您需要使用计时器进行轮询。1秒一次就可以了

您可以使用WMI来获取有关设备和东西的系统信息。

查看本文