Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.23;
Скачать: CL | DM;

Вниз

Включение принтера   Найти похожие ветки 

 
Alex8   (2008-02-25 16:34) [0]

Уважаемые мастера.
Подскажите, пожалуйста, как програмным путем
определить включен принтер или нет, c тем, чтобы
при необходимости выдать пользователю напоминание
"Включи принтер".  Спасибо.


 
KilkennyCat ©   (2008-02-25 17:37) [1]

Послать что-нить на печать.


 
Alex8   (2008-02-25 17:49) [2]

Вообще-то, идея. Если принтер выключен, то путем TRY-Extpt обработать
исключение. А если-включен, то пусть печатает ?
 А какой-нибудь функции нет?


 
KilkennyCat ©   (2008-02-25 18:46) [3]

Можно послать только управляющи символы. Или запросить параметры. Тогда печати не будет, а ошибка для обработки - вполне.


 
KilkennyCat ©   (2008-02-25 18:50) [4]

http://sources.ru/delphi/system/jobs_information_from_printer_spooler.shtml


 
Dimaxx ©   (2008-02-25 21:25) [5]

VCL-модуль Printers, TPrinter.Printers.Count. Равно 0 - нет принтеров.


 
Dimaxx ©   (2008-02-25 21:26) [6]

Тьфу, не так прочитал...


 
Alex8   (2008-02-26 12:08) [7]

Неожиданный (для меня) факт.
Идея о посылке на принтер пробной фразы не проходит, т.к.
при отключенном принтере исключение не формируется.
Программа просто проскакивает оператор печати, как
пустую строку.

 А что касается ссылки на
> http://sources.ru/delphi/system/jobs_information_from_printer_spooler.
то там речь идет о функции GetSpoolerJob(), определяющей
задания принтеру, а не его состояние.
 Мне кажется, что должна существовать функция (метод, процедура),
выдающая информацию о текущем состоянии принтера.
А вот какая ?


 
Alarm ©   (2008-02-26 13:26) [8]

WinSpool.OpenPrinter ?


 
Thrasher ©   (2008-02-26 14:45) [9]

Printer.GetPrinter?


 
Alex8   (2008-02-27 08:00) [10]

> WinSpool.OpenPrinter ?
> Printer.GetPrinter?

  Прошу прощения за свою темноту, но я не
смог разобраться с приведенными рекомендациями.
Хорошо бы привести пример их использования.
Спасибо.


 
noname   (2008-02-27 11:09) [11]

...
hPrinter   : THandle;
bResult    : Boolean;
sPrinterName : String
...
bResult := OpenPrinter(PChar(sPrinterName), hPrinter, Nil);
if NOT bResult then begin
    ShowMessage("Error opening the printer");
    exit;
end;


 
Alex8   (2008-02-27 13:03) [12]

Все получилось. Спасибо.
 Правда пришлось проинтуичить и добавить в
Uses модуль WinSpool. Да с моим бледным английским
отыскать функцию OpenPrinter в Help Windows SDK
смог только с такой подробной подсказкой.
Еще раз, большое спасибо.



Страницы: 1 вся ветка

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

Наверх




Память: 0.49 MB
Время: 0.017 c
15-1202576844
TUser
2008-02-09 20:07
2008.03.23
Майкрософт и свобода прессы


2-1203749314
Small Donkey
2008-02-23 09:48
2008.03.23
Вывести компьютер из спящего режима


3-1194190900
mufan
2007-11-04 18:41
2008.03.23
ADO, Query и русский язык!!!


2-1203682299
Gauss
2008-02-22 15:11
2008.03.23
Что-то вроде транслитератора.


2-1203486854
серж
2008-02-20 08:54
2008.03.23
ComboBox