Вниз
Скачать: CL | DM;

В винде до 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: -0.978 c
3-1097655075
Submarine
2004-10-13 12:11
2004.11.14
Работа с SQL 2000 server


14-1098565988
Soft
2004-10-24 01:13
2004.11.14
А зачем покупать книги крутых авторов?


3-1098171282
ZedeS
2004-10-19 11:34
2004.11.14
Фильтрация в ADOTable


14-1098686253
}|{yk
2004-10-25 10:37
2004.11.14
Харьковский Металлист обыграл донецкий Шахтёр 1-0!!!


1-1098961192
SNV-Soft
2004-10-28 14:59
2004.11.14
Размытые края TLabel при печати формы...




   Наверх