Печать события на C # - PullRequest
       14

Печать события на C #

0 голосов
/ 25 ноября 2010

Как я могу отслеживать действия принтера, такие как:

  • Когда началась печать?
  • Сколько страниц было распечатано? и т.д.

Ответы [ 4 ]

1 голос
/ 25 ноября 2010

Вы хотите настроить службу, которая прослушивает события уведомления об изменении принтера, используя функции FindFirstPrinterChangeNotification , FindNextPrinterChangeNotification и FindClosePrinterChangeNotification .И послушайте событие PRINTER_CHANGE_JOB.При возникновении события задания на печать вы можете получить доступ к необходимой информации о задании из структуры PRINTER_NOTIFY_INFO_DATA .

Этот метод следует использовать с добавлением соли.По своему опыту я обнаружил, что события принтера ненадежны, когда сервер находится под нагрузкой, и одновременно выполняется много заданий на печать.Некоторые события принтера не будут запускаться.

Очевидно, что это решение потребует большого количества P-Invoking & Marshalling, поэтому я желаю вам удачи.Если написание приложения на C ++ является вариантом, то в этом случае, вероятно, будет проще, чем на C #.

1 голос
/ 25 ноября 2010

объяснять это здесь так скучно. Я предлагаю вам прочитать статью полностью http://support.microsoft.com/kb/160129

1 голос
/ 25 ноября 2010

Полагаю, вы могли бы использовать WMI .

Вот запись в блоге о получении информации о принтере с помощью WMI: http://aleemkhan.wordpress.com/2005/09/20/getting-printer-information-through-wmi/

Вот некоторый код для получения событий принтера (хотя в VB.Net): http://social.technet.microsoft.com/Forums/en/ITCG/thread/71258e18-5516-4a90-be76-5b83855b2841

0 голосов
/ 25 ноября 2010

Может быть, использовать Spooler API, чтобы начать работу? Я не использовал это раньше, но я полагаю, что это потребует достаточного количества P / Invoke.

http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/a7160b44-0984-48c4-afef-b9a6ee4a8483

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...