我正在使用WMI使用带有C#代码的WMI来获取Print-Job状态。 现在,我从打印机旁边的获取了所有different statuses ,这对我来说非常重要,因为我知道作业何时完成了打印作业。
现在,我设法获得了打印状态,但前提是保留打印文档(请参阅附件)属性。但是所有的工作都停留在打印机的队列中,我不希望这样。
是否有任何方法可以从打印机获取打印状态而不标记“保留打印文档”属性已打开
答案 0 :(得分:0)
我不确定我是否理解。您需要一个像DispatcherTimer
这样的计时器来设置请求的间隔。在Tick
中,您可以检查打印机的状态是否已更改。这就是你想要的吗?
答案 1 :(得分:0)
您可以尝试使用此段代码将KeepPrintedJobs
属性设置为true
。
string searchQuery = "SELECT * FROM Win32_Printer";
ManagementObjectSearcher searchPrinters = new
ManagementObjectSearcher(searchQuery);
ManagementObjectCollection printerCollection = searchPrinters.Get();
foreach (ManagementObject printer in printerCollection)
{
PropertyDataCollection printerProperties = printer.Properties;
foreach (PropertyData property in printerProperties)
{
if (property.Name == "KeepPrintedJobs")
{
printerProperties[property.Name].Value = true;
}
}
printer.Put();
}