Druckaufträge abfangen (TotalPages immer = 0)

StehtimSchilf

Erfahrenes Mitglied
Hi Forum

Es gibt zwar schon ein solches Thema hier aber im Zweifelsfall solle man ein neues Thema eröffnen - also mach ich doch das.

Ich habe den Beispielcode von MS runtergeladen und läuft. Habe etwas rumgebastelt und das Teil mal auf den Print-Server geschoben. So, nun, wann immer ein Benutzer auf seinem Drucker (Netzwerkdrucker) was druckt, wird mir das auf dem Print-Server geloggt. Schön dachte ich! Beim Auswerten der Log-Files habe ich dann gesehen, dass alle "Total Pages" = 0 haben.

M.E liegt es daran, dass beim ersten Aufruf von EnumJobs() TotalPages, PagesPrinted und Size nicht bekannt ist.

Also habe mir mal solange die JOB_INFO_2-Daten rausschreiben lassen, solange der Job vorhanden ist. Und siehe da, die TotalPages, PagesPrinted erhöhen sich bis sie beim letzten "vorhanden sein" die effektive Anzahl betragen.

Nachteil: Das Abfragen der JOB_INFO_2-Daten solange der Job in der Queue ist, lässt die CPU auf 100% hochschnellen.

Meine Frage: Gibt es eine weitere Möglichkeit an die TotalPages ranzukommen, ohne ständig EnumJobs() aufzurufen? Bspw. mit der JobId den Printer abfragen à la getPagesPrinted(JobId) ?

Eine Möglichkeit wäre (unschön): Den Eintrag im EventViewer zu parsen :)

cheerioh & Thx
SiS
 
Zurück