Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Неполный перехват задач принтеров [D7, Win2k, WinXP]


Vile ©   (2006-01-16 13:41:00) 

Как уже всем известно - отловить задачи принтеров не состовляет сложности. Проблема с которой я столкнулся заключается в том, что некоторые принтеры не отлавливаются функциями EnumJobs и FindFirstPrinterNotifycation и пр. В частности HP LaserJet 1300 и 1320, которые пользуются одним монитором: HP Master Monitor (на которого я впрочем и грешу). Что самое неприятное - виндовый диспетчер печати их задачи видит! Вообщем, хотелось бы услышать Ваши мысли и решения?!


...
 OpenPrinter(PChar(FPrinterName), FPrinter, NIL);
...
 FFinder := FindFirstPrinterChangeNotification(FPrinter, FFlags, 0, nil);
 if FFinder = INVALID_HANDLE_VALUE then
 try
   while not Terminated do
     if WaitForSingleObject(FFinder, 1) = WAIT_OBJECT_0 then
     begin
       if FindNextPrinterChangeNotification(FFinder, FFlags, nil, Pointer(FNotifyInfo)) then
       begin
         Synchronize(DoNotify);
         FreePrinterNotifyInfo(FNotifyInfo);
       end;
     end;
 finally
   FindClosePrinterChangeNotification(FFinder);
 end;
...
 EnumJobs(FPrinter, 0, Length(aJobs), 2, @aJobs, cbBuf, pcbNeeded, pcReturned);
...


p.s. Забить, поставить свежие дрова и прочие подобные советы просьба не давать.


tesseract   (2006-01-20 19:51:00) [1]

HP ставит свои дрова, гад :-)
У меня такие- же принтеры. Согласно эмпирическим наблюдениям лучше присмотривай за портом, на какой подключён принтер (я так думаю они у тебя сетевые).

HP 1300 кстати намного более мощный с сетевой точки зрения.


Rouse_   (2006-01-16 13:47:00) [2]

Без монитора пробовал?


Наверх

Титульная страница Поиск, карта сайта Написать письмо