Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.14;
Скачать: CL | DM;

Вниз

Как проверить состояние (готовность) матричного принтера   Найти похожие ветки 

 
Serguar ©   (2003-12-19 11:19) [0]

Сабж собственно...


 
KSergey ©   (2003-12-19 11:22) [1]

В Win9x (и в DOS) можно через INT17 (правда, это случай без учета виндовой подсистемы печати)
Как это себя поведет в WinNT - не представляю


 
Digitman ©   (2003-12-19 11:23) [2]

не лезь ни в какие "готовности" !
не нужны они тебе, об этом заботится ОС

открывай файловый поток (см. CreateFile ("LPTX", ...))и посылай в его контексте нужные тебе данные на принтер (см. WriteFile())

все остальное за тебя сделает ОС


 
Serguar ©   (2003-12-19 11:50) [3]

Уже пробовал. Вот код:

procedure PrintFile(FName: String);
var
hFile, n: Cardinal;
pBuf: array[0..2048] of Char;
fSrc: File;
NumRead: Integer;
begin
hFile := CreateFile(PChar("LPT1"), GENERIC_WRITE, 0, nil,
OPEN_EXISTING, FILE_FLAG_NO_BUFFERING, 0);
if hFile <> INVALID_HANDLE_VALUE then begin
AssignFile(fSrc, FName);
Reset(fSrc, 1);
BlockRead(fSrc, pBuf, SizeOf(pBuf), NumRead);
CloseFile(fSrc);
WriteFile(hFile, pBuf, NumRead, n, nil);
WaitForSingleObject(hFile, INFINITE);
CloseHandle(hFile);
end;
end;

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


 
Digitman ©   (2003-12-19 12:00) [4]

используй overlapped-режим

см. CreateEvent(), WaitCommEvent(), GetOverlappedResult() и т.д.


 
atruhin ©   (2003-12-23 07:39) [5]

Мне определить состояние принтера "истинное" удалось только прямым чтением битов готовности портов INT17 не все ситуации позволяет отработать (принтер непоключен, offline, нет бумаги, ошибка принтера). Поэтому пришлось смотреть порты. (Под NT через драйвер естественно)



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

Текущий архив: 2004.03.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
8-43697
Sapersky
2003-11-05 13:38
2004.03.14
Поиск окружностей в изображении через Hough transform


14-43752
VDen
2004-02-18 19:05
2004.03.14
О погоде на английском


11-43419
Сергей Апин
2003-06-26 15:44
2004.03.14
Вопрос о доке для начинающих ;)


3-43312
KrasavAl
2004-02-12 12:24
2004.03.14
Как в удобном виде для клиента связать с сетевым MS SQL Server ом


14-43755
Undert
2004-02-19 17:16
2004.03.14
Как быть ..