AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Druckaufträge überwachen und Programm starten

Druckaufträge überwachen und Programm starten

Ein Thema von Oliver1983 · begonnen am 18. Aug 2011 · letzter Beitrag vom 25. Aug 2011
Antwort Antwort
Oliver1983

Registriert seit: 8. Mär 2006
Ort: Hamburg
43 Beiträge
 
Delphi XE Starter
 
#1

Druckaufträge überwachen und Programm starten

  Alt 18. Aug 2011, 13:29
Hi,

nach langem suchen ( drei Tage ) stelle ich nun meine Frage hier mal!

Ich möchte folgendes machen und zwar, soll das Programm den Druckerspooler von Windows überwachen und sobald ein Druckauftrag gesendet worden ist Programm bzw. ein Telnet befehl an die Fritzbox gesendet werden.

Mein Hauptproblem liegt beim überwachen des Spoolers! WinAPI?
Desweiteren Telnet einloggen bei der Fritzbox und einen Telnet befehl ausführen! Dieser Befehl schaltet dann die Steckdose an und somit den Drucker!!!

Bin um jede Hilfe dankbar

Gruß Olli
Oliver
  Mit Zitat antworten Zitat
axellang

Registriert seit: 3. Mai 2003
Ort: München
138 Beiträge
 
Delphi XE2 Enterprise
 
#2

AW: Druckaufträge überwachen und Programm starten

  Alt 19. Aug 2011, 11:35
Hi,

Hi,

nach langem suchen ( drei Tage ) stelle ich nun meine Frage hier mal!

Bin um jede Hilfe dankbar

Gruß Olli
siehe PrinterSpy und lerne

Axel
Alexander Lang
  Mit Zitat antworten Zitat
Oliver1983

Registriert seit: 8. Mär 2006
Ort: Hamburg
43 Beiträge
 
Delphi XE Starter
 
#3

AW: Druckaufträge überwachen und Programm starten

  Alt 19. Aug 2011, 20:26
Das bringt leider gar nichts, gibt es ne möglichkeit das mein Programm auf eine Windows Massage reagiert ohne das ich eine Timer abfrage machen muss? Ich könnte zwar einfach einen Timer nehmen der ständig die Drucker warte schlange überprüft, aber ich weiß nicht in wie fern das System dadurch belasted wird! Oder kann ich es vernachlässigen?

Gruß Olli
Oliver
  Mit Zitat antworten Zitat
axellang

Registriert seit: 3. Mai 2003
Ort: München
138 Beiträge
 
Delphi XE2 Enterprise
 
#4

AW: Druckaufträge überwachen und Programm starten

  Alt 20. Aug 2011, 00:13
Hi Olli,
Das bringt leider gar nichts, gibt es ne möglichkeit das mein Programm auf eine Windows Massage reagiert ohne das ich eine Timer abfrage machen muss? Ich könnte zwar einfach einen Timer nehmen der ständig die Drucker warte schlange überprüft, aber ich weiß nicht in wie fern das System dadurch belasted wird! Oder kann ich es vernachlässigen?

Gruß Olli
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.
Zitat:
It shows how to use the MSDN-Library durchsuchenFindFirstPrinterChangeNotification and MSDN-Library durchsuchenFindNextPrinterChangeNotification API function to monitor printer queues. Provides a reusable component with an OnJobChange event.
Die Beschreibung sagt alles.

Axel
Alexander Lang

Geändert von axellang (20. Aug 2011 um 00:24 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: Druckaufträge überwachen und Programm starten

  Alt 20. Aug 2011, 01:11
Guck dir hier mal http://assarbad.net/en/stuff -> prtmon3vivi.* an.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
ASM

Registriert seit: 15. Aug 2004
165 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: Druckaufträge überwachen und Programm starten

  Alt 20. Aug 2011, 12:57
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.
Angehängte Dateien
Dateityp: zip MonitorPrintSpooler.zip (162,0 KB, 122x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz