IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Получить статус принтера, под NT
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 105
Пол: Женский
Реальное имя: Юлия

Репутация: -  0  +


Нашла неплохой код:
function TestPrinterStatus(LPTPort: Word): Byte;  
var
Status: byte;
CheckLPT: word;
begin
Status := 0;
if (LPTPort >= 1) and (LPTPort <= 3) then
begin
CheckLPT := LPTPort - 1;
asm
mov dx, CheckLPT;
mov al, 0;
mov ah, 2;
int 17h;
mov &Status, ah;
end;
end;
Result := Status;
end;

Но под NT он не работает!!! Просто из паскаля - все ок, а вот из делфи - ни в какую!!! Кто сталкивался с подобной проблемой? Что делать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 660
Пол: Мужской
Реальное имя: Михаил

Репутация: -  11  +


Этот код неписан специально для DOS, а под win32 нужно использовать WIN32 API. Открыть файл или порт для винды все равно функция OPEN. Если какая-то программа этот порт открыла, то другая не сможет получить туда доступ. Посмотри в Delphi есть компонент TPrinter - может там найдешь то, что тебе нужно.


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 105
Пол: Женский
Реальное имя: Юлия

Репутация: -  0  +


С помощью TPrinter можно получить свойства, имя принтера, сервера, вывести очередь печати est. Но я не нашла статуса (готов/не готов). Это задача из разряда невыполнимых? sad.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата(Jill @ 9.08.2006 15:19)
Это задача из разряда невыполнимых?
Почему же сразу "невыполнимых?" Просто не совсем с помощью TPrinter...

Смотри в сторону EnumPrinters, получай с его помощью список всех принтеров в системе (информация будет записываться в массив переменных типа TPrinterInfo2), и для принтера, у которого pPrinterName совпадает с нужным тебе смотри, чему равно поле Status этой самой структуры TPrinterInfo2 ...

Чуть позже, если будет время, приведу пример кода, как это можно сделать...
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 4.05.2024 20:20
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name