Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.02.12;
Скачать: [xml.tar.bz2];

Вниз

Сперли програмку   Найти похожие ветки 

 
ANB ©   (2006-01-17 16:49) [0]

Году в 97-98 купили мы в часть струйник. Выяснилось, что кириллицу он никоим образом не поддерживает, а у меня как раз весь пакет программ на клиппере был. Написал я быстренько на делфи утилитку DOSPRN, которая печатает DOS файлы, при этом понимает эпсон-коды по управлению шрифтами и сохраняет псевдографику. Потом как то выложил ее в кладовку на нашем старом сайте (еще мастак назывался и кладовка работала). Седня глянул в Яндексе - а аналог, да еще с таким же названием, вовсю продается. Еще и защита прикручена. Ессно, все переделано, но козью морду состроить охота. Вот, думаю, докрутить перехват вывода на устройство PRN и выложить керку в кладовку бесплатный вариант.
Отсюда 2 вопроса :
1. Кто знает, как перехватить вывод на LPT или PRN из DOS программ ?
2. Примет ли керк архив по почте ?


 
Игорь Шевченко ©   (2006-01-17 17:06) [1]


> 1. Кто знает, как перехватить вывод на LPT или PRN из DOS
> программ ?


http://delphimaster.net/view/4-1135686570/

Найдешь - поделись со мной, если для Windows будет.


 
ANB ©   (2006-01-17 17:14) [2]


> Игорь Шевченко ©   (17.01.06 17:06) [1]

Это не то. А ты не мог бы скачать описание DOSPRN и выслать мне его мылом ? Belousov[sob]smartcard.ru ? Я бы глянул, как они это дело обошли.
Тут задачка то перехватить из виндовой программы вывод на принтер досовской. Я то не парился - переключил вывод на файл и вызывал печаталку, досовские программы то тоже мои были.
Хотя насчет объекта ядра - это интересно. Надо бы поэксперементировать, может чего и выйдет.


 
Игорь Шевченко ©   (2006-01-17 17:18) [3]


> Тут задачка то перехватить из виндовой программы вывод на
> принтер досовской


"Делается так (в NT). Пишешь DLL-ку, у нее в инициализационной части вызываешь VDDInstallIOHook с соответствующими параметрами. Обработчик, заданный как параметр этой функции, будет вызываться каждый раз, когда программа будет пытаться читать/писать что-то из/в порт(а). Дальше обрабатывай, как тебе это нравится (конечно, для этого ты должен знать описание формата выводимых данных. Тут уже ничем помочь не могу). Когда DLL-ку соберутся выгружать, снова вызовется инициализационная часть, и ты тогда должен выполнить VDDDeInstallIOHook.

После того, как все сделал, прописываешь свою DLL-ку в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Controls\VirtualDeviceDrivers. Тебе необходимо создать (или изменить) ключ VDD таким образом:

VDD=<путь_к_твоей_DLL_ке>\0<предыдущее значение_ключа> (это если ключ был), или
VDD=<путь_к_твоей_DLL_ке>\0\0 (если его не было).

Вкратце это все. Я этим не занимался сам, так что ничего не гарантирую. For more information look in MSDN (DDK Documentation\Windows NT 4.0 DDK\Virtual DOS drivers\Writing a VDD), как ни банально это звучит. Там же найдешь описание параметров всех функций."


 
ANB ©   (2006-01-17 17:28) [4]


> Игорь Шевченко ©   (17.01.06 17:18) [3]

Спасибо.


 
Sapersky   (2006-01-19 20:10) [5]

Вариант для Win9x:
Берётся драйвер redirect.vxd от DOSPRN, помещается в Windows\System, и делается следующее:

Const
 ofnb : array[0..11] of Byte = (1,10,99,58,92,112,114,110,115,112,108,0);

p:=AllocMem($141);
fh:=CreateFile(PChar("\\.\"+SysDir+"\redirect.vxd"),0,0,nil,1,$4000000,0);
If fh=0 then RaiseLastWin32Error;
If not DeviceIoControl(fh,1,p,$141,p,$141,br,nil) then RaiseLastWin32Error;
If not DeviceIoControl(fh,2,p,$141,p,$141,br,nil) then RaiseLastWin32Error;
CopyMemory(p,@ofnb,12);
If not DeviceIoControl(fh,2,P,$141,P,$141,br,nil) then RaiseLastWin32Error;
If p<>nil then FreeMem(p);

При завершении работы CloseHandle(fh);

Не уверен, что все из этих шаманских пассов обязательны, но так уж написал 4 года назад, и оно работало :)
Перехваченные данные помещаются в с:\prnspl (ofnb фактически и есть имя файла).


 
Torry ©   (2006-01-20 00:04) [6]

>1. Кто знает, как перехватить вывод на LPT или PRN из DOS программ ?

Сам это делал, в 1990-ом году. Написал аналогичную программу для лазерных принтеров, "Greenfield Laser Jet Utility". В ее составе и был "перехватчик" LPT и PRN. Но вот не уверен, что найду где-нибудь.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2006.02.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.04 c
15-1138116629
Shastox
2006-01-24 18:30
2006.02.12
Вопрос про проблему с текстом.


2-1138017729
mozgan
2006-01-23 15:02
2006.02.12
И все же как "наксерить" компонент Image1?


6-1131097945
guru-guru
2005-11-04 12:52
2006.02.12
Помогите разобраться с IdHTTP


15-1137584595
Харько (настоящий)
2006-01-18 14:43
2006.02.12
В какого оператора самые низике цены на GPRS?


8-1125742979
Asprofi
2005-09-03 14:22
2006.02.12
Как включить у монитора HightLight





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский