gpt4 book ai didi

c# - 即使启用了假脱机文件池,我如何找到具有给定 ID 的作业的假脱机文件?

转载 作者:可可西里 更新时间:2023-11-01 12:21:25 27 4
gpt4 key购买 nike

我想将给定 Windows 打印作业的假脱机数据复制到磁盘上的任意位置。

我有来自 Print Spooler API 的打印作业的作业 ID .我知道这项工作已经完成假脱机。我知道在我有时间完成我需要做的任何事情之前,该工作不会被删除。

如果禁用文件池,我可以通过在假脱机目录中查找格式为“xxxxx.spl”的文件来执行此操作,其中 xxxxx 是 0 填充的作业 ID。

如果启用了文件池,我该如何执行此操作?

如果有一种方法可以获取作业 ID 并返回假脱机数据流,我会很高兴,但目前看来不太可能。据推测,使用带有“PrinterName,Job xxxx”和 ReadPrinter 的 OpenPrinter 可能会发生类似的事情,如记录 here ,但到目前为止我haven't been able to get it to work ,即使我这样做了,它看起来也像是将数据加载到内存中,而且我不确定这将如何处理大型假脱机文件(>1 GB 并不罕见)。

我的第二个选择是传入 ID 并返回磁盘上带有假脱机数据的文件的位置(无论文件池设置如何)。

我的第三个偏好是将合并文件(“FPyyyyy.spl”)映射到它所对应的作业 ID。

这些是否可行,或者有人对如何解决这个问题有更好的想法?

(编辑添加,因为不清楚我们是否知道此选项):我们的后备方案是要求我们的客户通过编辑每台打印机的注册表来禁用假脱机文件池,但我们更希望避免这种情况。

最佳答案

figured out为什么我对 OpenPrinter 的调用失败了,而我已经使用 OpenPrinterReadPrinter 成功读取了假脱机数据,这很好地解决了我们的问题。

不过,我仍然会将赏金奖励给提出更好解决方案的任何人。

关于c# - 即使启用了假脱机文件池,我如何找到具有给定 ID 的作业的假脱机文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12866711/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com