WMI不使用C#发送打印作业状态
本文关键字:打印 作业状态 WMI | 更新日期: 2023-09-27 18:28:32
我正在使用带有C#代码的WMI来获取打印作业状态。现在,我正在从打印机获取打印旁边的所有不同状态,这对我来说非常重要,因为我知道作业何时完成打印作业。
现在,我设法获得了打印状态,但前提是Keep printed Documents(请参阅附件)属性处于启用状态。但所有作业都留在打印机的队列中,我不希望这样。
是否有任何方法可以在不标记上的"保持打印文档"属性的情况下从打印机获取打印状态
打印机属性
我不确定自己是否理解。您需要像DispatcherTimer
这样的计时器来设置请求的间隔。在Tick
中,您可以检查打印机的状态是否已更改。这就是你想要的吗?
您可以尝试使用这段代码将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();
}