Я могу получить информацию о задании на печать от Win32_PrintJob
с помощью WMI и ManagementEventWatcher
, но я не могу найти имя принтера. Я также посмотрел на эту документацию 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;
}
}
}
Спасибо, я попробую это завтра, как у меня есть другая вещь, чтобы сделать сегодня. –