C++ 更改打印队列所有者

标签 c++ windows owner printqueue

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

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

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

而 JOB_INFO_3 中没有这个字段。不错。

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

最佳答案

我不确定为什么 MSDN 说这些字段被忽略了。我使用 SetJob 和 JOB_INFO_1 更改了 pUserName、pDocument、pStatus,它运行良好。 请务必将 Position 设置为 JOB_POSITION_UNSPECIFIED。

关于C++ 更改打印队列所有者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39213608/

相关文章:

java - Dropbox Java API - 文件所有者电子邮件

c++ - 需要对名称列表进行排序,如何重载和定义 bool operator <?

C++ 应用程序崩溃从哪里开始寻找? MSVCR90.dll

c++ - 如何获取另一个进程的基址? (ASLR)

windows - 如何通过 R "shell"命令在 Windows 上设置 PATH

windows - 为什么我在尝试构建 QT 的静态版本时遇到 NMAKE 错误?

c++ - std::getline 在 JNI 中获取错误

c++ - 何时更喜欢 const 左值引用而不是右值引用模板

python - 如何在 Linux 机器上使用 Python 获取文件夹的所有者和组?

plugins - 尝试使用插件更改 CRM 4.0 上的帐户所有者