Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 打印队列监控:如何获取发起打印作业的调用方应用程序的信息?_C#_System.printing_Printqueuewatch - Fatal编程技术网

C# 打印队列监控:如何获取发起打印作业的调用方应用程序的信息?

C# 打印队列监控:如何获取发起打印作业的调用方应用程序的信息?,c#,system.printing,printqueuewatch,C#,System.printing,Printqueuewatch,我正在写一个打印监控应用程序,在打印服务器上运行。请求如下: 当用户在特定应用程序上打印时,需要有关启动打印作业的应用程序的信息。监视打印机队列时,它会向我提供用户信息和许多其他信息,但无法查询有关启动打印作业的应用程序的信息 问题是: 有没有一种C#/.NET方法可以找出哪个应用程序(如winword、excel等)启动了打印作业 此信息是否存储在PrintQueue、printspooler或其他任何地方?如何使用System.Printing命名空间或Win32Api实现这一点 有什么想法

我正在写一个打印监控应用程序,在打印服务器上运行。请求如下:

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

问题是:

有没有一种C#/.NET方法可以找出哪个应用程序(如winword、excel等)启动了打印作业

此信息是否存储在PrintQueue、printspooler或其他任何地方?如何使用System.Printing命名空间或Win32Api实现这一点


有什么想法吗?

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

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

迭代集合并获取
PrintSystemJobInfo
实例

欢迎来到堆栈溢出!请不要在问题标题中包含有关语言的信息,除非没有它就没有意义。标签就是为了这个目的。