如何跟踪打印机的活动,例如:
答案 0 :(得分:1)
答案 1 :(得分:1)
我猜你可以使用WMI。
以下是有关使用WMI获取打印机信息的博客条目:http://aleemkhan.wordpress.com/2005/09/20/getting-printer-information-through-wmi/
以下是获取打印机事件的一些代码(在VB.Net中):http://social.technet.microsoft.com/Forums/en/ITCG/thread/71258e18-5516-4a90-be76-5b83855b2841
答案 2 :(得分:1)
您可能希望使用FindFirstPrinterChangeNotification,FindNextPrinterChangeNotification和FindClosePrinterChangeNotification功能设置侦听打印机更改通知事件的服务。并听取PRINTER_CHANGE_JOB事件。当引发打印作业事件时,您可以从PRINTER_NOTIFY_INFO_DATA结构访问必要的作业信息。
这种方法应该采用一粒盐。我从经验中发现,当服务器负载不足时,打印机事件不可靠,同时发生许多打印作业。某些打印机事件不会触发。
显然这个解决方案需要大量的P-Invoking&编组,祝你好运。如果用C ++编写应用程序是一种选择,那么在这种情况下它可能比在C#中更容易。
答案 3 :(得分:0)
也许使用后台处理程序API来开始?我之前没有使用过这个,但我认为它会涉及相当多的P / Invoke。