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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.013 c
14-43789
arbin
2004-02-18 15:22
2004.03.14
Конкурс на лучшее поздравление к 23 февраля


1-43547
Adil Aliyev
2004-02-27 19:34
2004.03.14
dat файл.


3-43281
nejest
2004-01-23 13:24
2004.03.14
вопрос по TfrReport, как записывать запросы в frReport1GetValue


1-43499
Batoon
2004-02-28 13:54
2004.03.14
For ......


14-43822
Кен
2004-02-22 05:00
2004.03.14
Как, в чём хранить связи между данными ? Ведь количество связей





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский