我目前正在编写一个在打印服务器上运行的打印监视器应用程序。请求如下:
当用户在特定应用程序上打印时,需要有关启动打印作业的应用程序的信息。在监视打印机队列时,它会向我提供用户信息和许多其他内容,但是无法找到有关启动了printjob的应用程序的信息。
问题是:
是否有C#/。NET方式来找出哪个应用程序(例如winword,excel等)已启动了打印作业?
此信息是存储在PrintQueue还是printpooler或其他任何地方?如何使用System.Printing命名空间或Win32Api来完成?
任何想法?
答案 0 :(得分:0)
我不确定,但我认为您可以从PrintSystemJobInfo
获得所需信息。
PrintJobInfoCollection collection = LocalPrintServer.GetDefaultPrintQueue().GetPrintJobInfoCollection();
迭代集合并获取PrintSystemJobInfo
个实例。