[Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1020
  • Last Modified:

winspool.h and Print Queue / Job Watching

Okay I have created a Program that receives printer notifications.

So far I can tell when a Print Job is added to the Print Queue and retreive the Job Name, Document Name and User who sent the job to print.
   This is great HOWEVER - How can I tell when:
A.) A job has completed printing and been removed from the queue and which job that was.
B.) A Job has been deleted from the queue by another user - i.e. it never gets printed - and which job that was.


So far my program works like this.

OpenPrinter()
FindFirstPrinterChangeNotification()
...Wait for Notification...
 FindNextPrinterChangeNotification()
 if(PRINTER_CHANGE_ADD_JOB)
 {
  GetJob()
  ...Print Job Info to the Screen...
 }
FreePrinterNotifyInfo(pNotifyInfo);
FindClosePrinterChangeNotification(hPrinterEvent);
ClosePrinter(hPrinter);

For Source code see http://www.dynamic-server.net/pqwatch.zip

Thanks

Adam Retter
adam@cosmic.org.uk
0
adamretter
Asked:
adamretter
1 Solution
 
jkrCommented:
Have you seen http://support.microsoft.com/default.aspx?scid=kb;EN-US;q160129 ("HOWTO: Get the Status of a Printer and a Print Job (Q160129)")? This should anser your question (even though it means "polling" the status)
0
 
adamretterAuthor Commented:
How fequently should I poll using EnumJobs to make sure that I capture all Jobs, but not so frequently that it ties the system down?

0
 
jkrCommented:
Good question - that will depend on the system and its performance. As a rule of thumb, I'd use an interval that is about half the time (or slightly less) the printer needs to produce a page...

0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
jkrCommented:
Hmm, did you have a chance to try it?
0
 
adamretterAuthor Commented:
Thanks, Yup am working on it at the moment.

An interval of higher than about 100ms and you seem to drop job's.

Will let you know how i get on...
0
 
jkrCommented:
Anything new on this one? :o)
0
 
griesshCommented:
Dear adamretter

I think you forgot this question. I will ask Community Support to close it unless you finalize it within 7 days. You can always request to keep this question open. But remember, experts can only help you if you provide feedback to their questions.
Unless there is objection or further activity,  I will suggest to accept

     "jkr"

comment(s) as an answer.

If you think your question was not answered at all, you can post a request in Community support (please include this link) to refund your points. The link to the Community Support area is: http://www.experts-exchange.com/commspt/

PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER!
======
Werner
0
 
MindphaserCommented:
Force accepted

** Mindphaser - Community Support Moderator **
0
 
adamretterAuthor Commented:
Okay hope to post some more info soon
0

Featured Post

Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now