1

我想知道是否可以更改在您打开打印队列以查看排队的打印机文档时可见的“所有者”名称。我有一个 Windows 服务,它接收来自用户的文档并将其发送到 Windows 打印机,并且所有者始终是登录到运行服务的工作站的用户的名称。我想将“所有者”更改为其他内容,这将在 Windows 服务加载和使用的 C++ Windows DLL 中完成。

添加 8/30/16@9:14am ET

谢谢你的建议,托马斯。我应该提到我的研究,但它又长又空。MSDN 有一个 SetJob 函数,它可以采用 4 个结构中的 1 个(pJob = JOB_INFO_1…JOB_INFO_4)。JOB_INFO_1、2 和 4 有一个 LPSTR pUserName,似乎可以用来更改打印作业的所有者(所有者?)。但是,在 SetJob 的备注部分它说:“在调用 SetJob 时忽略 JOB_INFO_1、JOB_INFO_2 或 JOB_INFO_4 结构的以下成员:JobId、pPrinterName、pMachineName、pUserName、pDrivername、Size、Submitted、Time 和 TotalPages 。”</p>

而 JOB_INFO_3 里面没有这个字段。好的。

我没有看到任何其他可以做到这一点的功能。你能指出我可以研究更多的具体内容吗?或者那是已知的工作?谢谢。

4

1 回答 1

2

我不确定为什么 MSDN 说这些字段被忽略。我使用带有 JOB_INFO_1 的 SetJob 更改 pUserName、pDocument、pStatus,它运行良好。只要确保将位置设置为 JOB_POSITION_UNSPECIFIED。

于 2016-12-13T07:48:57.783 回答