On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 7179
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.12.21 12:15. Заголовок: Узнать что отправлено на принтер ?


Можно ли узнать из своей проги что отправлено на печать ?
Т.е. нужно вести лог, какие документы из программы отправляли на печать.
Соответственно из Харбора напрямую и если из программы подняли Ворд/Эксель - то перехватить была ли печать из них.

Нужен учёт распечатанных файлов на принтере !
Сейчас делаю тупо список открытых файлов для печати, а отпечатались они или нет не знаю как сделать.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 12 [только новые]


Администратор




Пост N: 4064
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 17.12.21 13:10. Заголовок: Вот пишут, как актив..


Вот пишут, как активировать в windows журнал печати:

https://www.white-windows.ru/zhurnal-pechati-i-kak-ego-vklyuchit-v-windows-10/

Вот еще:

https://printeru.info/poleznoe/istoria-pechati-printera

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7499
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 17.12.21 13:31. Заголовок: Pasha Опередил :)..


Pasha
Опередил :)

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7180
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.12.21 13:58. Заголовок: Не совсем то. Там вс..


Не совсем то.
Там все события печати, вдобавок принтер могут переставить или админ уберёт эту галочку.
Вариантов много, а мне потом разгребать не хочется.
И категория - Печать документа вообще ни о чём не говорит.

У меня юзера печатают допустим адрес и договор по нему, формируется документ с названием "Moskow,Kirova,d.22a,kv3.doc"
Как узнать отпечатался он или нет ?
Т.е. в принципе мне нужно просто знать, отправили ли документ в печать или нет.
Была ли печать МОЕГО документа или нет ?
А бумаги не было в принтере или другое событие, мне не интересно.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 4065
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 17.12.21 16:00. Заголовок: Не все хотелки можно..


Не все хотелки можно реализовать, иногда их приходится поумерить.
Делать запись в лог при печати из программы как я понимаю проблему не составит.
Насчет word/excel - можно перед показом их на экране, т.е. команды "Visible := .t.", выдавать через word/excel команду print с записью в лог
Хочется показать документ word/excel юзеру - после печати показать его в режиме preview

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7184
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.12.21 16:59. Заголовок: Для C# какое то реше..


Для C# какое то решение есть
https://stackoverflow.com/questions/4276269/printing-event-on-c-sharp#

А как быть для Харбора ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7500
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 18.12.21 17:13. Заголовок: Так там через WMI од..


Так там через WMI однако а он в Harbour доступен , бери и пробуй.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 4066
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 19.12.21 13:24. Заголовок: Андрей, как бы это т..


Андрей, как бы это тебе ничего не даст

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

Событие вроде такого:

PRINTER_CHANGE_ADD_JOB: A print job was sent to the printer.

Кто послал это задание на печать, что за задание - науке это неизвестно

В журнале печати думаю информации для анализа будет куда больше. Я его конечно не смотрел, мне такая экзотика на нужна. Включи и посмотри, что там
Насчет админа, который отрубит этот журнал: так его можно предупредить, чтобы не отрубал, если это так важно.
Проблемы можно решать не только программными, но и административно-организационными методами

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1624
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 19.12.21 14:49. Заголовок: На мой взгляд, свои ..


На мой взгляд, свои логи - то, что нужно.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1826
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 19.12.21 16:01. Заголовок: Dima пишет: Так там..


Dima пишет:

 цитата:
Так там через WMI однако а он в Harbour доступен , бери и пробуй


Все верно
Только анализировать надо win32_printjob.
Подключается по wmi и в цикле мониторим очередь после запуска word/excel и до тех пор пока процесс word/excel выполняется .

В очереди будет информация о пользователей, имени файла отправленного на печать , время постановки и другая дребедень. Смысл простой, прямые вызовы печати ловим сразу в лог, а запуск word/excel мониторим в очереди. Знаем же какой документ какой пользователь запустил, его и ищем в цикле. Если нашли, значит пользователь нажал кнопку print

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7188
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.12.21 17:50. Заголовок: Haz пишет: Только а..


Haz пишет:

 цитата:
Только анализировать надо win32_printjob.
Подключается по wmi


Дай пожалуйста пример кода.

Haz пишет:

 цитата:
и в цикле мониторим очередь после запуска word/excel и до тех пор пока процесс word/excel выполняется .


А слабенькие компы после такого не повиснут ?
Какой период опроса мониторинга нужно ставить ?

Кроме Ворда/Экселя использую Calc/Write + FastReport.
Пока нужно отлавливать Ворд и FastReport

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1827
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 19.12.21 18:34. Заголовок: Andrey пишет: Дай п..


Andrey пишет:

 цитата:
Дай пожалуйста пример кода.

попробуй сам написать.
Как с wmi работать примеры есть.
PS. Опрашивать можно в потоке.
PPS. Мне не до экспериментов сейчас

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7501
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.12.21 18:37. Заголовок: Andrey пишет: Дай п..


Andrey пишет:

 цитата:
Дай пожалуйста пример кода.


Спроси гугл , примеров как говна мусора
Например
https://www.cyberforum.ru/vba/thread812050.html
https://wutils.com/wmi/root/cimv2/win32_printjob/
........
Спросить дядю гугл можно так wmi win32_printjob vba
Примеры как работать с WMI есть в твоём любимом MiniGui

PS
Код с VBA довольно уверенно и просто переводится в Harbour

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 12
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет