![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перехват обращения к 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 программа).