2

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

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

问题是:

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

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

有任何想法吗?

4

1 回答 1

0

我不确定,但我认为您可以从PrintSystemJobInfo.

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

迭代集合并获取PrintSystemJobInfo实例。

于 2014-03-08T15:14:36.930 回答