2011-10-26 56 views
3

我想获得打印作业的文件地址,我在JOB_INFO_2记录中有它的信息,它有一个名为“DocumentName”的字段,但它不是Document“File Name”! ,其刚刚标题的窗口已发送打印请求如何获得打印作业文档名称(文件地址)?

是否有可能获得作业的文件名/地址?

它可能获得“DocumentName”的窗口句柄,然后获取句柄的文件名(进程名称),但是如何获取文档文件名?

例如:我已经打开DOC文件双赢MS-Word中,与上述解决方案,我们可以得到MS-Word中Exe文件地址,但我想DOC文件的文件名/地址

此外,当Document是图片时,没有标题!

回答

5

不一定有这样的事情。您可以先打印所有种类的东西,而不必先将其保存到磁盘,这样可能没有文件名。即使存在,文件也不一定与发送到打印机的文件相匹配 - 人们始终都会打印,而不必先保存更改。

您似乎正在阅读的大部分字段仅为信息字段。打印应用程序不需要提供它们,并且不需要它们,因为Windows不需要它们来执行打印作业。他们很高兴看到印刷经理的用户可以了解发生了什么。

+0

这不是一个答案。当您将输出重定向到打印机以外的其他设备,但使用打印后台打印时,需要使用打印作业名称。例如:PDFCreator。 – celerno

+0

你的例子还不够,@Celerno。我需要的不仅仅是一个词来表达你的观点。请详细解释一下。程序没有义务为他们正在打印的内容提供文件名称。虚拟打印机不能期望收到文件名。打印作业的名称不一定是文件的名称,它当然不需要引用磁盘上的实际文件。我已经回答了这个问题,解释了它的前提是有缺陷的,它是无法回答的。如果您愿意,欢迎您提供替代答案。 –