我正在为Windows 7创建一个postscript打印机,它将接受打印作业并将它们转发给真正的打印机。它将在LAN中共享,并可以从LAN计算机接收打印作业。我想在将打印作业转发到打印机之前找出打印作业来自哪台计算机。我怎样才能做到这一点?打印作业本身是否提供详细信息? 感谢
答案 0 :(得分:3)
查看GetJob和EnumJobs假脱机程序api函数。它们都返回两个结构中的一个,JOB_INFO_1或JOB_INFO_2。每个结构都包含一个pMachineName
字段,该字段是创建打印作业的计算机的名称。您可以从pinvoke.net中找到以下链接。
http://www.pinvoke.net/default.aspx/Structures.JOB_INFO_1
http://www.pinvoke.net/default.aspx/winspool/EnumJobs.html
或者,您可能还想查看使用WMI和Win32_PrintJob类。特别是HostPrintQueue
属性。