2

我正在为 Windows 7 创建一个 postscript 打印机,它将接受打印作业并将它们转发到真正的打印机。它将在 LAN 中共享,并且可以接收来自 LAN 计算机的打印作业。我想在将打印作业转发到打印机之前找出打印作业来自哪台计算机。我怎样才能做到这一点?打印作业本身是否提供详细信息?谢谢

4

1 回答 1

3

看看GetJobEnumJobs spooler api 函数。它们都返回两个结构之一,JOB_INFO_1JOB_INFO_2。每个结构都包含一个pMachineName字段,它是创建打印作业的机器的名称。您可能会发现以下来自pinvoke.net的链接很有用。

http://www.pinvoke.net/default.aspx/Structures.JOB_INFO_1

http://www.pinvoke.net/default.aspx/winspool/EnumJobs.html

或者,您可能还想研究使用WMIWin32_PrintJob类。特别是HostPrintQueue财产。

于 2010-08-09T06:23:42.793 回答