【发布时间】:2011-02-01 11:40:01
【问题描述】:
有没有办法在用户从任何应用程序打印时检测文件的文件名,在打印机事件的某个位置?我正在寻找一个 windows api,我可以在其中确定正在打印的文件。
【问题讨论】:
有没有办法在用户从任何应用程序打印时检测文件的文件名,在打印机事件的某个位置?我正在寻找一个 windows api,我可以在其中确定正在打印的文件。
【问题讨论】:
打印 jib 使用名称打开,但通常这并不意味着文件名 - 我相信可以通过直接查询打印机驱动程序来访问打印队列中显示的名称。
【讨论】:
打印机驱动程序没有任何用于查找文件名的外部 API。我假设您正在考虑创建某种系统托盘代理类型的应用程序,该应用程序将监视打印队列以查找正在发送的作业。如果是这样 -
希望这会有所帮助。如果是这样,请投票 +1 :)
【讨论】:
不,没有,至少不可靠。请记住,可能根本没有文件名。例如,我可以打开记事本之类的应用程序,输入一些内容,然后打印。我要打印什么文件?没有任何。
在上述情况下,大多数应用程序都会提供某种默认文件名,例如“无标题”,有时您可以通过解析打印作业的名称来找到该名称。例如,如果您调用GetJob,则JOB_INFO_1 结构的pDocument 成员将包含指向打印作业名称的指针,并且该名称通常包含文件名。
但是,每个应用程序的格式都不同,有些根本不提供。所以答案是你可以通过大量的努力在 75% 的时间内找到文件名,但根本没有 100% 的解决方案。
【讨论】: