Как узнать состояние принтера? - PullRequest
0 голосов
/ 15 ноября 2010

Я пытаюсь написать код для определения состояния принтера для печати отчетов Crystal в формате PDF. У меня есть следующие тесты:

  1. Как запустить код после нажатия кнопки печати в отчете Crystal? Есть ли какие-либо события (щелчок мыши) для проверки состояния принтера?

  2. Какие свойства изменяются, когда принтер в разных режимах, таких как открывание крышки, отсутствие бумаги, открывание крышки и отсутствие бумаги, выключение, включение, прогрев и т. Д.? какие числовые значения он точно возвращает? и есть ли какие-либо изменения в возвращаемых значениях для различных принтеров Catagery (принтеры HP, Canon Ect ..)?

  3. Как отобразить сообщение «Успешно» после успешной печати отчета?

Просьба уточнить любого.

Ответы [ 2 ]

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

Вам нужно написать ObjectQuery .Msgstr "Выбрать * из Win32_PrintJob".Затем вы должны использовать ManagementObjectSearche r и ManagementObjectCollection для получения количества элементов в очереди печати. ​​

вы можете использовать «SELECT * FROM Win32_Printer» для получения состояния принтера

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

Вы можете использовать System.Management с классом Win32_Printer для запроса информации о принтере.

Существует также Win32_PrintJob , который можно перечислить, чтобы определить, когда задание завершается. Свойство Status может дать вам дополнительную детализацию состояния принтера. Вы можете отслеживать создание и удаление этих объектов - это даст вам новую и завершенную информацию о работе.

Другие перечисленные классы принтеров здесь .

...