1
我能够通过使用WMI和ManagementEventWatcher
从Win32_PrintJob
获得打印作业信息,但我似乎无法找到打印机名称。我也看过这个Win32_PrintJob文档,最接近打印机名称的是DriverName
属性,但它是打印机驱动程序名称,而不是控制面板的设备和打印机中显示的打印机名称。如何从Win32_PrintJob的打印作业中获取打印机名称?
因此,正如标题所述,我如何从Win32_PrintJob
打印作业中获取打印机名称?
这是我的部分代码,到目前为止获得打印作业:
public void PrintHelperInstance_OnPrintJobChange(object sender, EventArrivedEventArgs e)
{
ManagementBaseObject objProps = (ManagementBaseObject)e.NewEvent.Properties["TargetInstance"].Value;
string jobName = objProps["Document"].ToString();
if (jobName == "Test Print Form")
{
if (!IsFoundPrintJob)
{
IsFoundPrintJob = true;
}
CurrentJobStatus = (string)objProps["JobStatus"];
if (CurrentJobStatus != PreviousJobStatus)
{
uint jobId = (uint)objProps["JobId"];
string jobPrinter = (string)objProps["DriverName"];
string jobHost = (string)objProps["HostPrintQueue"];
string jobStatus = (string)objProps["JobStatus"];
PreviousJobStatus = CurrentJobStatus;
}
}
}
谢谢你,我会尝试这个明天,因为我有另一回事今晚做。 –