Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
1-1098807684
Kotyara
2004-10-26 20:21
2004.11.14
Ошибка в QReport при больших отчетах.


4-1097080582
Hensin
2004-10-06 20:36
2004.11.14
Как просмотреть список запущенных процессов и удалить нужный?


1-1099047852
Pentium133
2004-10-29 15:04
2004.11.14
TStringList и IniFile


14-1098719800
Александр1
2004-10-25 19:56
2004.11.14
Сети


3-1097649698
alsov1
2004-10-13 10:41
2004.11.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
Английский Французский Немецкий Итальянский Португальский Русский Испанский