Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перехват обращения к LPT! [D5, Win95/98]


Trot ©   (2001-10-12 06:47:00) 

Магистры поможите!!
Короче есть досовская прога которая печатает на принтер некие данные как их можно было бы перехватить и записать в файл заранее благодарен за любую информацию!!


Digitman   (2001-10-25 12:22:00) [1]

>Ketmar
"Досовская прога" может вообще не использовать Int17h, а работать с портом напрямую. будучи же запущенная не в родной среде, а в VM86mode, любые ее "потуги" по непосред.доступу к порту будут вызывать апп.прерывания по нарушению защиты с немедленным переходом на обработку в контексте соотв.шлюза с уровнем превелегий PL0. Твои действия ?


Anatoly Podgoretsky   (2001-10-25 12:03:00) [2]

Если ты мне, то
Досовская программа, которая будет производить вывод в одном адресном простанстве, а "наша прога" перехватчик Int17H в другом адресном пространсве и со своим собственным прерыванием.
Конечно это противоречие при желании можно попытаться обойти.


Ketmar   (2001-10-24 23:33:00) [3]

а почитать вопрос? ДОСОВСКАЯ ПРОГА! вот и работать надо с ней в дос-сесии. если она общается с принтером не напрямую, а через int17, то перехват - вполне реальная вещь. и маздайка тут совсем не при чем...

Satanas Nobiscum!


Anatoly Podgoretsky   (2001-10-24 14:01:00) [4]

Ocean © (24.10.01 11:36)

Хм адресные пространства твоей и чужих программ изолированы


Digitman   (2001-10-24 11:54:00) [5]

>Ocean
Кто говорит про Win32 ? Автор ! Читай топик:
"Перехват обращения к LPT! [D5, Win95/98]"

На кой ему нужны твои "16-битные программки", если D5 производит приложения ТОЛЬКО под Win32 ?



Ocean   (2001-10-24 11:36:00) [6]

Кто говорит про Win32?

Примерно так:

int PrnIntr = 0x17;
void far interrupt (*OldVect)() = getvect(PrnIntr);
setvect(PrnIntr,NewVect);

Это работает в 98-м... конечно же, для перехвата печати чужой 16-битной программки.


Digitman   (2001-10-24 10:56:00) [7]

>Ocean
И как, позволь уж полюбопытствовать, ты "весело перехватываешь прерывания" в Win32 на PL3 ? Пусть даже и на С ?


Ocean   (2001-10-24 07:02:00) [8]

Можно перехватить прерывание принтера, hex 17. Лично мне с прерываниями веселее работать на С.


Trot   (2001-10-15 02:48:00) [9]

Нет ты не понял вопроса, просто надо чтоб данные обробатывала наша прога.


Vitaly   (2001-10-12 14:47:00) [10]

Если есть сеть, то:
1 комп. Устанавливаешь любой матричный принтер с выводом в файл
2 комп. Назначаешь lpt на этот принтер (где DOS программа).


Наверх

Титульная страница Поиск, карта сайта Написать письмо