2015-09-28 7 views
0

Я создаю настройку для оконной службы в WPF. Служба всегда работает в моей системе. Я хочу получить количество страниц для печати. Если я собираюсь распечатать любые документы, такие как doc, PDF, excel с моего компьютера, служба автоматически получит количество страниц печати и текущую дату-время. Затем он создаст для него журнал. Как получить количество страниц печати с использованием C# -кодирования в WPF.Количество следов страниц печати в C#

ответ

2

Это, вероятно, может помочь вам получить количество отпечатков Взятые

try 
{ 
    string PrinterJobs = "SELECT * FROM Win32_PrintJob"; 
    ManagementObjectSearcher FindPrintJobs = new ManagementObjectSearcher(PrinterJobs); 
    ManagementObjectCollection prntJobCollection = FindPrintJobs.Get(); 
    foreach (ManagementObject prntJob in prntJobCollection) 
    { 
     string jobName = prntJob.Properties["Name"].Value.ToString(); 
     string documentName = prntJob.Properties["Document"].Value.ToString(); 
     string nbcopie = prntJob.Properties["TotalPages"].Value.ToString(); 
    } 
} 
catch (Exception ex) 
{ 
    MessageBox.Show(ex.Message); 
} 

Вы также можете сделать взглянуть на PrintMonitor – A C# print spooler monitor

Редактировать

Просто Applied IList<ManagementBaseObject> получить список всех сетевых принтеров, установленных на ПК. Как указано в вашем комментарии.

try 
{ 
    IList<ManagementBaseObject> printers = new List<ManagementBaseObject>(); 
    string PrinterJobs = "SELECT * FROM Win32_PrintJob"; 
    ManagementObjectSearcher FindPrintJobs = new ManagementObjectSearcher(PrinterJobs); 
    ManagementObjectCollection prntJobCollection = FindPrintJobs.Get(); 
    foreach (ManagementObject prntJob in prntJobCollection) 
    { 
     if ((bool)printer["Network"]) 
     { 
      printers.Add(printer); 
     } 
     string jobName = prntJob.Properties["Name"].Value.ToString(); 
     string documentName = prntJob.Properties["Document"].Value.ToString(); 
     string nbcopie = prntJob.Properties["TotalPages"].Value.ToString(); 
    } 
} 
catch (Exception ex) 
{ 
    MessageBox.Show(ex.Message); 
} 
+0

благодарит за ваш ответ. Это кодирование работает нормально, но я не могу получить общий принтер. Я настроил общий принтер. Этот принтер только не получает других, это Fax, Microsoft XPS Document Writer, Send to One-note. Эти вещи только получили. – Lawrence

+0

@Lawrence: Посмотрите на редактирование. Так как я понял только половину комментариев ур, я внес свои изменения. Посмотрите, помогает ли это –

Смежные вопросы