打印队列监控:如何获取启动打印作业的调用者应用程序的信息?

时间:2014-03-08 14:54:17

标签: c# system.printing printqueuewatch

我目前正在编写一个在打印服务器上运行的打印监视器应用程序。请求如下:

当用户在特定应用程序上打印时,需要有关启动打印作业的应用程序的信息。在监视打印机队列时,它会向我提供用户信息和许多其他内容,但是无法找到有关启动了printjob的应用程序的信息。

问题是:

是否有C#/。NET方式来找出哪个应用程序(例如winword,excel等)已启动了打印作业?

此信息是存储在PrintQueue还是printpooler或其他任何地方?如何使用System.Printing命名空间或Win32Api来完成?

任何想法?

1 个答案:

答案 0 :(得分:0)

我不确定,但我认为您可以从PrintSystemJobInfo获得所需信息。

PrintJobInfoCollection collection = LocalPrintServer.GetDefaultPrintQueue().GetPrintJobInfoCollection();

迭代集合并获取PrintSystemJobInfo个实例。