Tag: print spooler api

如何通过Printername和JobID暂停Win32_printJob

任务 当用户打印文档时,暂停弹出将出现然后填写表单单击输入表单将关闭并且作业已恢复。 我们有50台网络打印机 , 2000台客户机和一台打印服务器 。 每个客户有3或4台打印机 问题 如果用户使用网络打印机(CANON,HP)在本地打印文档(EX:PDF PRINTER,XPS DOCUMENT WRITER) (或) ,则打印作业立即停止。 我的尝试 当打印任何文件时,事件监听器正在观看并返回打印作业 。 在第一暂停方法有时工作,大部分时间不能正常工作。因为,它搜索printjob,但它没有已经打印。 在第二个暂停方法不起作用因为,事件侦听器返回Managementbaseobject但是如果要暂停打印作业需要ManagementObject 如何将ManageBaseObject转换为ManageObject PRINTJOB EVENT LISTENER CODE managementEvent = new ManagementEventWatcher(); managementEvent.Query = new EventQuery(“SELECT * FROM __InstanceCreationEvent WITHIN 0.1 WHERE TargetInstance ISA ‘Win32_PrintJob'”); managementEvent.Scope = new ManagementScope(@”\root\cimv2″); managementEvent.EventArrived += new EventArrivedEventHandler(printJobArrived_EventArrived); managementEvent.Start(); 主要行动守则 private void printJobArrived_EventArrived(object sender, […]