Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Hook на печать, это возможно? 
:(
    Опции темы
bartram
  Дата 25.2.2005, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: 3
Всего: 29



Сабж! Мне надо сделать так чтобы всё что печаталось на принтере помимо этого записывалось ещё и в tif файл, это возможно?

Это сообщение отредактировал(а) bartram - 25.2.2005, 21:01


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
Александра
Дата 26.2.2005, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 20.2.2005
Где: Москва

Репутация: 1
Всего: 12



возможно, но это довольно сложный процесс. большая программа.

необходимо встраиваться в процесс печати и перехватывать данные, когда они скидываются на хард.

Это сообщение отредактировал(а) Александра - 26.2.2005, 00:58
--------------------
PM   Вверх
bartram
Дата 26.2.2005, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: 3
Всего: 29



Цитата
возможно, но это довольно сложный процесс.

Я знаю что сложный, был бы лёгкий я б не спрашивал. Поэтому меня и интересует вопрос, как?



--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
<Spawn>
Дата 27.2.2005, 03:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 1
Всего: 64



Если знаешь Си, то иди на rsdn.ru и ищи темки перехвата вызова API, после осмысления которых, ты должен будешь внедриться в целевой процесс и подменить вызов системных функций печати на свои(например, путем подправки таблицы импорта), где сможешь делать с данными что хочешь(главное потом не забыть вызвать реальную функцию smile ).


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
bartram
Дата 27.2.2005, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: 3
Всего: 29



Цитата
Если знаешь Си, то иди на rsdn.ru и ищи темки перехвата вызова API, после осмысления которых, ты должен будешь внедриться в целевой процесс и подменить вызов системных функций печати на свои(например, путем подправки таблицы импорта), где сможешь делать с данными что хочешь(главное потом не забыть вызвать реальную функцию  ).

Спасибо <Spawn> но я к сожелению. не знаю Си




--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
Александра
Дата 28.2.2005, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 20.2.2005
Где: Москва

Репутация: 1
Всего: 12



слишком сложный способ! можно попроше сделать, хотя кто-как...

1. обработчик печати переключи на какой-нить режим EMF. Обычно по умолчанию RAW включен.
2. используй при печати "Очередь печати", а не Печать прямо на принтер
3. отлавиливай в системе сообшение WM_SPOOLERSTATUS (оно возникает когда в очередь печати добавляется/удаляется задание)
4. далее в папке спулера следи за появлением специальных служебных файлов. формат их не известен (хотя логика прослеживается), в них есть список на временные файлы, которые как раз и есть то, что сейчас печатается. один файл - одна страница. формат их служебная информация и EMF блоки. под Win9x/ME просто EMF файлы

5. обратись ко мне, у меня уже есть готовый написанный шпион для этого дела ;)

--------------------
PM   Вверх
bartram
Дата 14.3.2005, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: 3
Всего: 29



Цитата
5. обратись ко мне, у меня уже есть готовый написанный шпион для этого дела ;)

Обращаюсь smile



--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
Albinos_x
Дата 16.3.2005, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 3
Всего: 108



Цитата
3. отлавиливай в системе сообшение WM_SPOOLERSTATUS (оно возникает когда в очередь печати добавляется/удаляется задание)


в ХР мне почему-то не удавалось словить это сообщение, проблема так и не нашла решения...
В других ОС не пробовал.


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Cashey
Дата 25.4.2008, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


Профиль
Группа: Завсегдатай
Сообщений: 3441
Регистрация: 13.11.2002
Где: в столице

Репутация: нет
Всего: 60



Цитата(Albinos_x @  16.3.2005,  22:14 Найти цитируемый пост)
в ХР мне почему-то не удавалось словить это сообщение, проблема так и не нашла решения...
В других ОС не пробовал. 

WM_SPOOLERSTATUS отсутствует во всех операционных системах с ядром NT (в том числе в 2000 и XP). Вместо обработки этого сообщения следует использовать функции FindFirstPrinterChangeNotification и FindNextPrinterChangeNotification


--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0923 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.