· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Перехват печати

Посл.отвђт Сообщенiе


Дата: Авг 20, 2004 07:29:25

Народ! требуется помощь:
необходимо перехватывать задания, посылаемые на принтер, и, если это ДОС-задания, переделывать их в Вин (PCL).
Бог с ней, с переделкой, ... как перехватить?
Я понимаю, что под вин 2000/XP надо писать драйвер, но вот только какой и как?
...может быть драйвер-фильтр? и к какому устройству его прицеплять?
// я в написании драйверов новичок; все знания ограничиваются статьями Four-F
В общем, помогите чем сможете, пожалуйста!


Дата: Авг 20, 2004 07:33:05

kilgur
все знания ограничиваются статьями Four-F
Т.е. статьи не достаточно хороши? ;-)


Дата: Авг 20, 2004 07:35:21

q_q
„Т.е. статьи не достаточно хороши? ;-)“
дело не в этом - статьи хорошие, но в них нет про драйверы-фильтры, я мне кажется, что делать нужно именно так. Хотя в виду моей чайниковости по этой теме поправьте меня, если я не прав - я буду только рад.


Дата: Авг 20, 2004 13:07:18

Про это много отдаленно говорится, но попробуй сам: всё равно для печати посылается IRP пакет (про них есть у Four-F) , напиши каку-нить прогу, которая сама будет пользовать этот способ печати, а потом дебаж её в SoftIce и глянь на IRP, который отослала CallDriver(...) и соответственно будешь знать к какому драйверу посылается пакет и с какими параметрами. Потом аттачишься к нему и ... дальше дело техники.


Дата: Авг 20, 2004 13:58:24

сильно сомневаюсь что на таком низком уровне реально будет отладить это дело...


Дата: Авг 20, 2004 14:58:42

kilgur
Я в принципе в дровах сам новенький.Но раз пошло про фильтры и ирп то помойму самым наглядным является пример filemon от руссиновича (sysint.zip где то на этом сайте есть или смотри тему мониторинг API).Там как раз и идет перехват ирп и как ответил Four-F можно выполнять и прерывание работы ирп(Four-F сказал что такое делается в фаерволах и т.д)


Дата: Авг 20, 2004 16:49:38

Сразу говорю, что как сделать сабж не знаю, но я просто открыл DDK, набрал в поиске "print" и тут же наткнулся на "Writing a Print Monitor". Может быть он тоже сабжа не делает, но в DDK охриненный раздел "Printer Drivers and Spooler Components" и в исходниках имеется каталог print.


Дата: Авг 21, 2004 15:33:09

kilgur
Это конечно не сильно упрощает дело, но есть готовое решение:
http://dvtb.amur.ru/~dosprn/
Правда к нему еще ключик нужен, а потом придется
в SoftIce глядеть. Да и автор наверное позаботился, чтобы идеи не украли.... Но все-таки SoftIce обычно удается натравить.


Дата: Авг 23, 2004 09:26:32

valterg
Прога DosPrn - это конечно хорошо, но вот перехват порта под NT/2K/XP она не умеет делать, только под 95/98. 8-(
В доке с прогой описывается некоторое хитрое решение, но оно не всегда катит и у меня нестабильно работает.
Вот и выходит, что нужен драйвер.


Дата: Авг 23, 2004 09:35:18

Four-F
где бы еще нарыть этот DDK... 8-(


Дата: Авг 23, 2004 09:38:45

Four-F
Можешь поделиться всем, что связано со словом print и одноименным каталогом? ;-)


Дата: Авг 23, 2004 12:13:31

[ kilgur: где бы еще нарыть этот DDK... ]

Ну поискать хорошенько. Люди как-то находят.


[ kilgur: Можешь поделиться всем, что связано со словом print... ]

Боюсь, что не потяну. Больно много с ним связано :)


[ kilgur: ...и одноименным каталогом? ;-) ]

Стукнись в мыло. Будет ~1.5 метра. И сразу говорю, что внутри я не знаю. Т.е. там какие-то исходники валяются, но делают ли они то, что те надо я не знаю.


Дата: Авг 24, 2004 17:09:07

kilgur
„Прога DosPrn - это конечно хорошо, но вот перехват порта под NT/2K/XP она не умеет делать, только под 95/98. 8-(
В доке с прогой описывается некоторое хитрое решение, но оно не всегда катит и у меня нестабильно работает. “

Какое хитрое решение - там примитивная ДОС-программа,
которая перехватывает INT 17. Разобраться с ней наверное не составит труда : надо только посмотреть как она накопленный буфер скидывает. А потом им и продашь.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.053