![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Принтер [D5, Win2k]
Roadstar © (2004-08-27 11:45:00)Доброго времени суток!
Возникла такая проблема: как произвести диагностику принтера, т.е. если он вообще, есть ли в нем бумага, готов и исправен и т.д.
Где можно получить такую информацию?
Заранее благодарен.
Rem (2004-08-27 15:31:00) [1]
cnt := sizeof(_PRINTER_INFO_2);
Анатолий (2004-08-27 15:29:00) [2]Что говорит GetLastError ?
Roadstar (2004-08-27 15:16:00) [3]
> Rem
неа, какое-то число
Rem (2004-08-27 15:06:00) [4]Printer.Handle = NULL?
Roadstar (2004-08-27 14:53:00) [5]
> Анатолий
Кстати, хотел использовать функцию GetPrinter, однако она у меня не хочет работать!
Вот код:
...
var
pi : PPrinterInfo2;
cnt : integer;
begin
if Printer.Printers.Count > 0 then
begin
GetMem(pi, sizeof(_PRINTER_INFO_2));
ZeroMemory(pi, sizeof(_PRINTER_INFO_2));
cnt := 255;
if not GetPrinter(Printer.Handle, 2, pi, sizeof(_PRINTER_INFO_2), @cnt) then
...
Так вот эта функция при таком раскладе всегда FAIL!
Че я не так сделал?
Анатолий (2004-08-27 14:18:00) [6]
> Roadstar
А, ну если это подошло, обратите внимание, чтобы "LPT" был не именованым каналом спулера печати, а символьной ссылкой на драйвер, о котором в статье идет речь. А то в В2000 так может быть. Лучше создайте свою симв. ссылку при помощи
DefineDosDevice(DDD_RAW_TARGET_PATH, SymbLink, DeviceName)
Roadstar (2004-08-27 13:55:00) [7]
> Анатолий
Спасибо за совет!
Анатолий (2004-08-27 12:51:00) [8]Вообще-то Rem прав про то, что такую информацию инкапсулирует ОС.
Хотя бывают случаи, когда спулером не воспользуешся. Тогда посмотрите
http://junglewin.narod.ru/lpt.html
Rem (2004-08-27 11:50:00) [9]Вообще-то такую информацию инкапсулирует ОС. В общем случае пусть этим ОС и занимается. Но если уж так нужно, см. "Printing and Print Spooler Functions" и "Printing and Print Spooler Structures". Это из WinAPI.