Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/29: Рейтинг темы: голосов - 29, средняя оценка - 4.55
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315

Отлов события печати

13.12.2010, 19:17. Показов 5585. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот такой вот вопросик меня интересует:
Можно ли отлавливать событие отправки на печать? событие может происходить откуда угодно в винде(не из вижуал студии).
При этом, если мы его даже поймаем, можно ли вытащить ту информацию которая отправляется на печать? Например, записать эту инфу в какой-то файл.?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.12.2010, 19:17
Ответы с готовыми решениями:

Отлов события нажатия клавиши мыши
как отловить нажатие клавиш мышек независимо куда было нажатие например if(нажата левая клавиша мышки) { ляляля }

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

Отлов события выбора элемента ComboBox
На форме кнопка, с кодом: ComboBox1.ItemIndex := 0; В событии select ComboBox1 есть код, как сделать что бы при нажатии на кнопку, то...

12
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8728 / 3680 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
13.12.2010, 20:10
Используй Printer Spooler API, должно помочь в решении проблемы.
1
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315
13.12.2010, 20:42  [ТС]
А куда обычно система сохраняет те данные/файлы которые должны быть распечатаны?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//объявляем функцию ShowMessage с параметром типа int
 public void ShowMessage(int a)
        {
            MessageBox.Show(a.ToString());
        }
//объявляем функцию ShowMessage с параметром типа string
        public void ShowMessage(string a)
        {
            MessageBox.Show(a);
        }
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender,EventArgs e)
        {
          int b=10;
          string f="sdfsd";
          ShowMessage(b);//здесь будет вызвана функция где параметр типа инт
          ShowMessage(f);//здесь будет вызвана функция где параметр типа стринг
        }
Вот это и называется перегрузкой
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8728 / 3680 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
13.12.2010, 20:50
Вроде сюда
Code
1
X:\Windows\System32\spool\PRINTERS
но не уверен.
1
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315
13.12.2010, 20:51  [ТС]
Спасибо, как дойду до реализации там уже по коду наверно еще спрошу, ну или если все нормально будет скину код чтоб другим еси че помогло)
0
9 / 9 / 0
Регистрация: 13.01.2010
Сообщений: 32
29.01.2011, 15:27
Дабы не плодить новые темы, присоединюсь к старой.
Нужно сваять монитор печати. Использование API спулера лежит на поверхности и прекрасно ловит все задания (кто, когда, что и откуда). Проблема только с вопросом "сколько". Проблема, которая грозит поставить крест на всей этой затее - для подавляющего большинства принтеров количество переданных на печать страниц содержит вранье - как правило (но не всегда!) не учитывается количество экземпляров. Чтение файлов спулинга тоже не помощник, поскольку их форматы (судя по всему) тайна за семью печатями...
Появилась мыслишка перехватывать обращения приложений к подсистеме печати - в общих чертах представляю как, но не могу сообразить что...
Буду благодарен за любую подсказку как в области перехвата обращений приложений к подсистеме печати, так и в смысле вообще в каком направлении можно еще порыть...
0
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315
29.01.2011, 15:31  [ТС]
Надобность в этой задаче уже отпала- а нужно было, потому что был прибор и к нему не было дров, но типа у него отдельный разъем на принтер был и надо было достать инфу из прибора - все решилось когда узнали что там есть COM порт, и через него вытаскивали. Скажи какая задача у тебя? Глядишь тоже какое-нить решение найдется
0
9 / 9 / 0
Регистрация: 13.01.2010
Сообщений: 32
29.01.2011, 15:43
Цитата Сообщение от 23Alex24 Посмотреть сообщение
...Скажи какая задача у тебя?...
У меня задача простая - сваять монитор печати - кто, когда, куда, откуда и почем...
Для чего неплохо бы знать, сколько страниц было на передано на печать. Количество страниц в одном экземпляре спулер сообщает вполне корректно, а при печати нескольких экземпляров - увы, фигвам, очень далеко не всегда...
0
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315
29.01.2011, 15:48  [ТС]
Мда, а та инфа которая сохраняется перед печатью ее можно поглядеть? Если да, то может и когда идет сама печать (т.е. ее попытка), можно ловить эту информацию-т.е. поток информации идущий уже на печать, тогда возможно и копии тоже будут?
0
9 / 9 / 0
Регистрация: 13.01.2010
Сообщений: 32
29.01.2011, 15:58
Пробовал.
Проблем нет, кроме одной - как бы узнать, где там хранится информация о количестве экземпляров. Форматов уйма и большинство "закрытые".
0
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315
29.01.2011, 16:08  [ТС]
Хм,а может эта информация прям среди этих данных?
0
9 / 9 / 0
Регистрация: 13.01.2010
Сообщений: 32
29.01.2011, 16:27
Цитата Сообщение от 23Alex24 Посмотреть сообщение
Хм,а может эта информация прям среди этих данных?
Там и есть, вот только где (там много чего есть...)
Пробовал печатать один и тот же документ в разном количестве экземпляров и сравнивать спулинг - толку ноль
В общем это не выход, однозначно...
0
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315
29.01.2011, 16:28  [ТС]
Мда, тут наверно можно разобраться только если все про печать прочитать)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.01.2011, 16:28
Помогаю со студенческими работами здесь

Отлов события открытия файла в приложении
Всем привет. У меня такой трабл. Создал в Delphi текстовый редактор, но реализацию автоматического определения файла , при открытии файла с...

glut отлов события закрытия окна
Добрый вечер! Как или какая функция (в glut), отвечает за событие закрытие окна. Что имею ввиду: в WinApi есть такое, что перед...

Отлов события нажатия на элемент списка
На сайте есть список вида: <select id="city_name" name="ext_params"><option label="Любой город" value="0_0_0">Любой...

Отлов события открытия\закрытия cd привода и обнаружение наличия диска
Поздравляю всех с новым годом!) Хотел узнать, нужно поставить обработчики на такие события как открытие\закрытие cd привода и наличие...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru