C# 打印队列监控:如何获取发起打印作业的调用方应用程序的信息?
我正在写一个打印监控应用程序,在打印服务器上运行。请求如下: 当用户在特定应用程序上打印时,需要有关启动打印作业的应用程序的信息。监视打印机队列时,它会向我提供用户信息和许多其他信息,但无法查询有关启动打印作业的应用程序的信息 问题是: 有没有一种C#/.NET方法可以找出哪个应用程序(如winword、excel等)启动了打印作业 此信息是否存储在PrintQueue、printspooler或其他任何地方?如何使用System.Printing命名空间或Win32Api实现这一点C# 打印队列监控:如何获取发起打印作业的调用方应用程序的信息?,c#,system.printing,printqueuewatch,C#,System.printing,Printqueuewatch,我正在写一个打印监控应用程序,在打印服务器上运行。请求如下: 当用户在特定应用程序上打印时,需要有关启动打印作业的应用程序的信息。监视打印机队列时,它会向我提供用户信息和许多其他信息,但无法查询有关启动打印作业的应用程序的信息 问题是: 有没有一种C#/.NET方法可以找出哪个应用程序(如winword、excel等)启动了打印作业 此信息是否存储在PrintQueue、printspooler或其他任何地方?如何使用System.Printing命名空间或Win32Api实现这一点 有什么想法
有什么想法吗?我不确定,但我认为您可以从
PrintSystemJobInfo
获取所需信息
PrintJobInfoCollection collection = LocalPrintServer.GetDefaultPrintQueue().GetPrintJobInfoCollection();
迭代集合并获取
PrintSystemJobInfo
实例 欢迎来到堆栈溢出!请不要在问题标题中包含有关语言的信息,除非没有它就没有意义。标签就是为了这个目的。