Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.14;
Скачать: 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 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.062 c
1-1098975439
Norn
2004-10-28 18:57
2004.11.14
Определения файла, для открытия которой была вызвана программа


1-1098967297
Chlavik
2004-10-28 16:41
2004.11.14
Надо после QueryInterface как то уничтожать полученый интерфейс ?


6-1094494684
pkm
2004-09-06 22:18
2004.11.14
Net.exe


1-1099285151
Anics
2004-11-01 07:59
2004.11.14
Как отловить действие пользователя "Завершение работы" ?


3-1097215384
janb
2004-10-08 10:03
2004.11.14
Помогите начинающему подключится к локальной базе MySQL