Форум: "WinAPI";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];
ВнизВ винде до 2000ного работал Int 17h, Работа с принтером напрямую. Найти похожие ветки
← →
Exciter © (2004-10-05 14:21) [0]В 98м и миллениуме можно было на асме посмотреть в онлане ли принтак. А как тоже самое сделать под ХР ?
Function TKassaForm.GetStatePrinter : Boolean;
var mode : byte;
begin
//проверка порта на готовность
asm
pusha
mov ah, 2
mov dx, 0 // 0=LPT1, 1=LPT2 ...
int 17h
mov mode,ah
popa
end;
if (mode<>$90) Then
raise Exception.Create("Принтер не готов.");
GetStatePrinter := True;
end;
Подскажите.
← →
KSergey © (2004-10-05 14:26) [1]Пользоваться документированными средствами.
К стати, на счет "до 2000": была еще NT4, так вот она имеет отношение к 2000, в отличие от Win9x - они не были "до". В NT4 это так же нельзя.
В частности, тут работать надо только через имеющийся драйвер, либо - писать свой. Стандартные же драйвера не всегда имеют такую ф-цию, она как бы не нужна в данном случае (все равно все через спулер идет).
← →
DC-AC (2004-10-05 16:24) [2]Какой принтер ? К сожалению в отличие от старых матричников :-) современные принтеры могут не иметь понятие "On Line". Они могут лишь устанавливать линию ERROR на LPT (если они LPT) или если USB вообще нифига не устанавливаить, а передавать строку статуса в ответ на запрос драйвера. С EPSON-ами помогу, с другими - звиняй...
← →
Ihor Osov'yak © (2004-10-05 23:30) [3]если коротко - никак. Если развернуто - см. [1] KSergey © (05.10.04 14:26)
Hint: При программировании для платформы Win32 от Microsoft желательно приcлушиваться к рекомендациям Microsoft по программированию для платформы Win32.
← →
DC-AC (2004-10-06 07:18) [4]Ihor Osov"yak : не ну почему, если задача стоит _именно_ следить за линией BUSY или SELECT IN и если рогом упереться... То (например) через компонент DlPortIO, использующий свой драйвер можно обращаться напрямую к портам. Это по _методу_ получения информации.
А теперь по _результату_. Это будет работать не со всеми (даже LPT) принтерами, поскольку сейчас в моде всякие пакетные протоколы (D4,MLC,CAPT и пр.) и состояние принтера передаётся в порт в режиме ECP или Nibble и линии BUSY/SELECT IN будут "вести себя" согласно протоколу выбранного режима.
Hint: написать "в одиночку" драйвер современного принтера "по рекомендациям Microsoft" практически нереально, это под силу лишь коллективам разработчиков в сотрудничестве с разработчиками принтерного "железа"...
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.037 c