Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Печать для программ DOS 
:(
    Опции темы
Dynamic
Дата 28.6.2006, 06:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 372
Регистрация: 5.7.2004
Где: Салехард

Репутация: 12
Всего: 15



Есть несколько досовских программ, избавиться от которых пока нет возможности, но которые не желают печатать на лазерные (в т.ч. сетевые) принтеры. Пробовал несколько утилит, типа DOSPrn, но в каждой есть что-то, что не меня устраивает. Насколько сложно создать подобную утилиту самому? Вообще, какие принципы при этом используются?

ЗЫ. Я в системном программировании транзитом, так что не обессудьте за ламерские вопросы.... 


--------------------
Было бы о чем молчать, а уж что сказать – всегда найдется...
PM MAIL WWW   Вверх
Yanis
Дата 28.6.2006, 07:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Dynamic
Объясни принцип работы твоих программ с DOSPrn


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Dynamic
Дата 28.6.2006, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 372
Регистрация: 5.7.2004
Где: Салехард

Репутация: 12
Всего: 15



Это не мои программы. А принцип я думаю такой - прога просто отправляет данные на адрес LPT-порта (или может используется какое-то прерывание биоса для печати, не знаю). Но драйвер принтера устанавливается в виндовс! Ставить досовские дрова для принтера?

Вобщем, если бы знал - не спрашивал. 


--------------------
Было бы о чем молчать, а уж что сказать – всегда найдется...
PM MAIL WWW   Вверх
Yanis
Дата 28.6.2006, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Dynamic
Нет. Я имею ввиду твои действия по распечатке с помощью DOSPRN


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Dynamic
Дата 28.6.2006, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 372
Регистрация: 5.7.2004
Где: Салехард

Репутация: 12
Всего: 15



Конкретно действия? Вхожу в программу, открываю нужный отчет, жму F5. DOSPrn как-то перехватывает данные, отправленные на принтер и выводит их через подсистему печати виндовс.
DOSPrn постоянно сидит в трее. 


--------------------
Было бы о чем молчать, а уж что сказать – всегда найдется...
PM MAIL WWW   Вверх
Dynamic
Дата 29.6.2006, 08:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 372
Регистрация: 5.7.2004
Где: Салехард

Репутация: 12
Всего: 15



Вобщем, в привате с Yanis пришли к такому выводу:
Цитата

при старте дос-проги запускается prn2file.com, перехватывает весь вывод в LPT, сохраняет его в файл. Надо написАть прогу, чтобы сидела в памяти и по таймеру проверяла появление файла c:\prnspl

одно но: prn2file.com файл шароварной программы DOSPrn и использовать его в своих программах скорее всего нельзя  smile

 


--------------------
Было бы о чем молчать, а уж что сказать – всегда найдется...
PM MAIL WWW   Вверх
Yanis
Дата 29.6.2006, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Цитата(Dynamic @  29.6.2006,  09:35 Найти цитируемый пост)
одно но: prn2file.com файл шароварной программы DOSPrn и использовать его в своих программах скорее всего нельзя  

Да навреное использование prn2file.com тоже попадает под лицензию. Есть два выхода. Певый способ - купить программу. Но всё равно непонятно можно ли использовать этот com в своих программах. Второй способ - написать перехватчик LPT данных. Но в этом я уже мало чего смыслю. 


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
drkot
Дата 29.6.2006, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: 5
Всего: 8



Есть в нт системах стандартное стадство для перенаправления ввода.
с ЛПТ на \\server\printer к примеру.
если не ошибаюсь выглядит это так
Код

assign [{letter=D | mount=Path}] [noerr]


assign lpt \\server\printer noerr



может ошибся в команде (в названии) но вуть осталась таже. Давно командной строкой не пользовался.
Програмки по перенаправлению примерно тоже детают полько програмно. 


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
Romikgy
Дата 29.6.2006, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Цитата(Dynamic @  29.6.2006,  07:35 Найти цитируемый пост)
prn2file.com

как ей пользоваться чет я не понялsmile 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Yanis
Дата 29.6.2006, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Цитата(Romikgy @  29.6.2006,  13:04 Найти цитируемый пост)
как ей пользоваться чет я не понял

http://www.dosprn.com/winnt.htm 


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Romikgy
Дата 29.6.2006, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Yanis, сиба 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
bems
Дата 29.6.2006, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 31
Всего: 88



Цитата(Dynamic @  28.6.2006,  06:05 Найти цитируемый пост)
Насколько сложно создать подобную утилиту самому?
Как два байта переслать. Через именованый канал.
Код

program DosPrintViewer;
uses windows;
{$APPTYPE CONSOLE}
const BufSize=4096;
var hPipe,hFile:THANDLE;buf:PChar;read:cardinal;done:boolean;
begin
hPipe:=CreateNamedPipe('\\.\pipe\DosPrintViewerLpt1Pipe',PIPE_ACCESS_DUPLEX,PIPE_TYPE_BYTE or PIPE_READMODE_BYTE or PIPE_WAIT,
                       PIPE_UNLIMITED_INSTANCES,BufSize,BufSize,5000,nil);
DefineDosDevice(DDD_RAW_TARGET_PATH,'lpt1','\Device\NamedPipe\DosPrintViewerLpt1Pipe');
ConnectNamedPipe(hPipe,nil);
GetMem(buf,BufSize);
done:=false;
repeat
 if ReadFile(hPipe,buf^,BufSize-1,read,nil) then begin
                                                 writeln(buf);
                                                 done:=pos(#12,string(buf))>0;
                                                 end;
until done;
GetMem(buf,Bufsize);
CloseHandle(hPipe);
readln
end.
Примерчик считает, что одновременно печатает лишь одна прога. Я сделал вывод на консоль, но ничего не мешает сохранять в файл, печатать его и удалять файл. Плюс еще перекодировку добавить.
 


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Yanis
Дата 29.6.2006, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



bems
Круто smile Завтра обязательно попробую. 


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Dynamic
Дата 30.6.2006, 05:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 372
Регистрация: 5.7.2004
Где: Салехард

Репутация: 12
Всего: 15



bems, спасибо, тоже буду пробовать 


--------------------
Было бы о чем молчать, а уж что сказать – всегда найдется...
PM MAIL WWW   Вверх
bems
Дата 30.6.2006, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 31
Всего: 88



Да, вот еще. Можно сразу в файл, но тогда ТОЛЬКО одна прога одновременно. А так может кто универсально сделает. 


--------------------
Обижено школьников: 8
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0951 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.