Zitat:
ohne dir jetzt näher treten zu wollen, denke ich das Du die Funktionsweise der Kompo nicht verstanden oder dir die Kompo nicht angesehen hast.
Die Umsetzung der
API-Funktionen FindFirstPrinterChangeNotification() und FindNextPrinterChangeNotification() in einen auch tatsächlich arbeitsfähigen Code
ohne erweiterte, präzise Kenntnis der zahlreichen benötigten Parameter ist nicht ganz so einfach, wie unterstellt wird. Insbesondere für die von Oliver1983 beschriebene Aufgabe des permannten Pollings.
Vielleicht entspricht dies hier Deinen Vorstellungen (Source und Bin (D7, für Screen 1280x1024 compiliert)): cf. Anhang.
Der PrintSpooler wird ein einem eigenen Thread überwacht, so dass der Mainthread nicht blockiert ist.
Der Spoolerthreat gibt über eine userdefinierte Message an den Mainthreat die Information, sobald ein neuer Printjob im Spooler vorliegt. Der Mainthread kann dann mit dieser Information anfangen (in der Message-Methode WM_SpoolerStatus()), was gebraucht wird.
Den Spoolermonitor könnte man noch - je nach Bedarf - erheblich erweitern um Rückmeldungen an den Mainthreat, z.B.:
- welcher Drucker mit dem Job beauftragt worden ist
- welches Dokument gedruckt werden soll
- falls ein Job aus dem Spooler entfernt worden ist
usw.