![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Неполный перехват задач принтеров [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]Без монитора пробовал?