Как отловить сообщения принтера?

Программирование на Visual Basic for Applications
qwertyhp
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 156
Зарегистрирован: 07.10.2009 (Ср) 15:02
Откуда: Москва

Как отловить сообщения принтера?

Сообщение qwertyhp » 18.01.2012 (Ср) 16:22

MS Windows XP SP2
MS Excel 2003 SP3
Xerox Phaser 3124
Samsung ML-1665

Написал макрос VBA, выводящий лист Excel на печать. Требуется отслеживать сообщения драйвера принтера об окончании бумаги в подающем лотке, замятии бумаги, окончании печати задания и т.п. (и реагировать на них).
А вот как бы это сделать...
Пожалуйста, подскажите, если кто знает.
Спасибо.
Пятачок Forever! :)

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Как отловить сообщения принтера?

Сообщение alibek » 18.01.2012 (Ср) 16:40

Зачем?
Lasciate ogni speranza, voi ch'entrate.

qwertyhp
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 156
Зарегистрирован: 07.10.2009 (Ср) 15:02
Откуда: Москва

Re: Как отловить сообщения принтера?

Сообщение qwertyhp » 18.01.2012 (Ср) 20:10

Осуществляется вывод на печать большого многостраничного документа Excel. 1000 и более бумажных листов (я серьёзно) в течение дня. В процессе вывода такого объёма стали возникать пропуски целых листов Excel - но эту проблему я решил. Однако, на таких количествах периодически заканчивается бумага, иногда заминается, а при истощении тонера вообще из печати идёт брак, на выброс.
С целью преодоления подобных ситуаций и потребовалось решение задачи, которую я описал ранее. В Интернете, увы, ничего (скажем так - что бы у меня заработало) я не нашел. Есть куски кода, которые смотрятся весьма достоверно, но что с ними делать, чтобы они заработали - не знаю.
Поэтому попросил помощи. Скорее всего, решение, будучи найденным, пригодится многим.
Вот.
Пятачок Forever! :)

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Как отловить сообщения принтера?

Сообщение alibek » 19.01.2012 (Чт) 8:01

Пусть каждый занимается своим делом.
Excel отправляет задания на печать, спулер следит за ошибками печати.
Влезание в эту цепочку своим макросом ни к чему хорошему не приведет.

У любого действия должна быть причина и цель.
Что будет делать твой макрос, когда обнаружит, что кончилась бумага?
Lasciate ogni speranza, voi ch'entrate.

qwertyhp
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 156
Зарегистрирован: 07.10.2009 (Ср) 15:02
Откуда: Москва

Re: Как отловить сообщения принтера?

Сообщение qwertyhp » 21.01.2012 (Сб) 22:45

Когда макрос обнаружит, что кончилась бумага, он позовёт Хозяина :) (например, модемом наберёт мой мобильный (ну, как способ привлечь внимание)), или запищит, или (в перспективе) - активирует стороннее устройство, которое подгрузит очередную порцию бумаги в подающий лоток принтера, и печать будет продолжена.
Пятачок Forever! :)

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Как отловить сообщения принтера?

Сообщение alibek » 22.01.2012 (Вс) 15:44

qwertyhp писал(а):Когда макрос обнаружит, что кончилась бумага, он позовёт Хозяина :) (например, модемом наберёт мой мобильный (ну, как способ привлечь внимание)), или запищит, или (в перспективе) - активирует стороннее устройство, которое подгрузит очередную порцию бумаги в подающий лоток принтера, и печать будет продолжена.

Напиши простенький скрипт на языках автоматизации (AutoIt, nncron), который при возникновении окна с определенным заголовком (ошибка печати) будет звать Хозяина.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23

    TopList