首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >打印时获取文件名

打印时获取文件名
EN

Stack Overflow用户
提问于 2011-02-01 19:40:02
回答 3查看 1.8K关注 0票数 1

当用户从任何应用程序打印时,是否有一种方法可以检测文件的文件名?我正在寻找一个窗口应用程序接口,我可以确定正在打印的文件。

EN

回答 3

Stack Overflow用户

发布于 2011-02-01 19:48:05

打印jibs是使用名称打开的,但通常这并不意味着文件名-我相信打印队列中显示的名称可以通过直接查询打印机驱动程序来访问。

票数 2
EN

Stack Overflow用户

发布于 2011-03-01 21:33:28

打印机驱动程序没有任何用于查找文件名的外部API。我假设您正在考虑创建某种systray代理之类的应用程序,该应用程序将监视正在发送的作业的打印队列。如果是的话-

  1. 有关允许您监视打印作业状态的打印队列的微软工具,请参阅http://support.microsoft.com/kb/196805
  2. 请参阅http://msdn.microsoft.com/en-us/library/ff562742%28v=vs.85%29.aspx,其中解释了Windows如何支持打印机更改通知。您可以创建一个应用程序来注册此应用程序并获得打印队列的句柄。一旦获得句柄,就可以调用GetPrinter和GetJob API来访问JOB_INFO_2结构。JOB_INFO_2结构中的pDocumentName是

文件的名称

希望这能有所帮助。如果是,请投票a +1 :)

票数 1
EN

Stack Overflow用户

发布于 2014-06-28 10:12:40

不,没有,至少不可靠。请记住,可能根本没有文件名。例如,我可以打开记事本之类的应用程序,键入一些内容,然后打印出来。我打印的是什么文件?没有。

在上面的场景中,大多数应用程序都会提供某种类型的默认文件名,比如"untitled",有时您可以通过解析打印作业的名称来找到该名称。例如,如果调用GetJobJOB_INFO_1结构的pDocument成员将包含一个指向打印作业名称的指针,而该名称通常包含文件名。

但是,每个应用程序的格式都不同,有些应用程序根本不提供。因此,答案是您可以花费大量精力在75%的时间内找到文件名,但根本没有100%的解决方案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4862053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档