在Windows - >打印机和设备 - >实际打印队列中有(最后一列)名为Port like here的列
启用打印机池时,这将显示文档正在打印的端口名称(对于真实打印机),如第一个c:\ ports \ p1,第二个c:\ ports \ p2(或port_2121和port_2122 ...等) . 我想获得相同的信息 .
我检查了Enumjobs和JOB_INFO_1 - 4结构,其中没有一个端口或端口名成员 . 我测试过,pPrinterName也一样 . 因此即使从那一侧也可以访问 .
任何想法我怎么能得到打印作业的端口? (就像打印队列一样)
谢谢
2 回答
您可以使用带
JOB_NOTIFY_FIELD_PORT_NAME
字段的FindNextPrinterChangeNotification
函数执行此操作 . 启用打印机池并且一个端口是buzy时,可以更改此值可以从PRINTER_INFO_2结构中检索端口名称 . JOB_INFO结构有一个名为pPrinterName的字段,您可以使用此字段来获取打印机的PRINTER_INFO_2结构 .
这是一个例子:http://www.swissdelphicenter.ch/en/showcode.php?id=1909
以下是PRINTER_INFO_2的更多细节:
https://msdn.microsoft.com/en-us/library/windows/desktop/dd162845(v=vs.85).aspx