Перехват печати

Тема в разделе "WASM.WIN32", создана пользователем kilgur, 20 авг 2004.

  1. kilgur

    kilgur New Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    13
    Адрес:
    Russia
    Народ! требуется помощь:

    необходимо перехватывать задания, посылаемые на принтер, и, если это ДОС-задания, переделывать их в Вин (PCL).

    Бог с ней, с переделкой, ... как перехватить?

    Я понимаю, что под вин 2000/XP надо писать драйвер, но вот только какой и как?

    ...может быть драйвер-фильтр? и к какому устройству его прицеплять?

    // я в написании драйверов новичок; все знания ограничиваются статьями Four-F

    В общем, помогите чем сможете, пожалуйста!
     
  2. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    kilgur

    все знания ограничиваются статьями Four-F

    Т.е. статьи не достаточно хороши? :derisive:
     
  3. kilgur

    kilgur New Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    13
    Адрес:
    Russia
    q_q



    дело не в этом - статьи хорошие, но в них нет про драйверы-фильтры, я мне кажется, что делать нужно именно так. Хотя в виду моей чайниковости по этой теме поправьте меня, если я не прав - я буду только рад.
     
  4. PavPS

    PavPS New Member

    Публикаций:
    0
    Регистрация:
    24 фев 2004
    Сообщения:
    109
    Адрес:
    Russia
    Про это много отдаленно говорится, но попробуй сам: всё равно для печати посылается IRP пакет (про них есть у Four-F) , напиши каку-нить прогу, которая сама будет пользовать этот способ печати, а потом дебаж её в SoftIce и глянь на IRP, который отослала CallDriver(...) и соответственно будешь знать к какому драйверу посылается пакет и с какими параметрами. Потом аттачишься к нему и ... дальше дело техники.
     
  5. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia
    сильно сомневаюсь что на таком низком уровне реально будет отладить это дело...
     
  6. VOOrDOOluck

    VOOrDOOluck New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2004
    Сообщения:
    51
    Адрес:
    Ukraine
    kilgur

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

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Сразу говорю, что как сделать сабж не знаю, но я просто открыл DDK, набрал в поиске "print" и тут же наткнулся на "Writing a Print Monitor". Может быть он тоже сабжа не делает, но в DDK охриненный раздел "Printer Drivers and Spooler Components" и в исходниках имеется каталог print.
     
  8. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    kilgur

    Это конечно не сильно упрощает дело, но есть готовое решение:

    http://dvtb.amur.ru/~dosprn/

    Правда к нему еще ключик нужен, а потом придется

    в SoftIce глядеть. Да и автор наверное позаботился, чтобы идеи не украли.... Но все-таки SoftIce обычно удается натравить.
     
  9. kilgur

    kilgur New Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    13
    Адрес:
    Russia
    valterg

    Прога DosPrn - это конечно хорошо, но вот перехват порта под NT/2K/XP она не умеет делать, только под 95/98. 8-(

    В доке с прогой описывается некоторое хитрое решение, но оно не всегда катит и у меня нестабильно работает.

    Вот и выходит, что нужен драйвер.
     
  10. kilgur

    kilgur New Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    13
    Адрес:
    Russia
    Four-F

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

    kilgur New Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    13
    Адрес:
    Russia
    Four-F

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

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    [ kilgur: где бы еще нарыть этот DDK... ]



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





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



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





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



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

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    kilgur



    Какое хитрое решение - там примитивная ДОС-программа,

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