Asynchrones Drucken abfangen

DrMueller

Erfahrenes Mitglied
Hallo Leute,
muss mich schon wieder an Euch wenden, es will aber auch gar nichts klappen zurzeit.
Folgendes: WIr haben ein zugekauftes HTML-Texttool. Nun haben wir einen Befehl, dass man dieses drucken kann.
Leider erscheint teilweise der angehängte Fehler.
Mittlerweile bin ich mir sicher, dass das Timing auf die DLL nicht stimmt, da der Druck asynchron zu meinem Programm läuft. Nun hat ein anderer Entwickler schon eine Funktion geschrieben, welche das eigentlich regeln soll, aber ich glaube diese ist fehlerhaft.
Klassischerweise erscheint der Fehler beim Durchsteppen nicht und auch dann nicht, wenn ich direkt nach der betreffenden Zeile eine Messagebox hinpflanze.

Nun kann ich mit der API vielleicht auch das Druck-Fenster herausfinden und dann das programm weiterlaufen lassen, aber ich habe schon oft das Problem gehabt, dass eine Fake-messagebox Probleme gelöst hätte.

Hat sicher Jeder schon mal erlebt.
 
Leider erscheint teilweise der angehängte Fehler.

Mir fehlt da irgendwie der Anhang, den du ansprichst.

Wenn ich das richtig verstehe sendet ihr (per API) einen Druckbefehl, weil euer Programm dann aber weitermacht, obwohl die Fremdapplikation noch nicht beendet ist, generiert das den Fehler?

Wäre es dann in deinem Programm machbar, einfach die Taskliste abzufragen und erst dann fortzufahren, wenn der Fremdprozess geschlossen ist? Unter Umständen ließe sich der Druckauftrag prüfen und erst dann weiterfahren, wenn er erledigt wurde (mit einem eigenen Druck-Spooler).


Der Doc!
 
Hey Doc,
soweit klappt das mit dem Forms auslesen nur gibts noch ein Problem.
So wie ich das analysiert habe, läufts so ab:
Unser Programm läuft --> Schickt Druckbefehl.
Programm läuft weiter --> Drucker bereitet synchron Daten auf.
Sobald das Fenster des Druckers erscheint, stoppt unser Programm aber.
Nun stoppt leider auch die tolle Fenster-Suche, die ich vom Link oben übernommen habe.
Und wenn ich dann das Drucken-Fenster wegklicke, geht die Suche zwar weiter, aber das Fenster ist dann natürlich schon wieder weg.

Kann man das überhaupt irgendwie abfangen?
 
Die Frage ist, wieso euer Programm stoppt, wenn ein Fremdfenster aufgeht. Bei einem Fenster aus eurem Code würde ich das Modal ja verstehen, aber bei einem fremden Fenster?

Wirkt sich das nur auf euer Programm aus oder stehen Windows bzw. andere Programme auch?


Der Doc!
 
Gute Frage,
ich gebe jedoch jedes Fenster, das meine Funktion findet, aus und sobald das gesuchte Fenster erscheint, habe ich dort keine Ausgabe mehr drin, daher gehe ich davon aus, dass dort gestoppt wird.
Dumme Frage: Ein Timer würde ja weiterzählen, auch wenn das Programm stoppt, stoppt der Code im Timer dann auch automatisch oder würde der weiterlaufen?
 
Hm hab's grad getestet mit dem Timer.
Leider blockt das Form auch den Timer, kommt also auch nur vor und nach dem Formular...
Das Ding macht mich fertig...
 
Ein Timer auf deiner Form würde auch vom Block berücksichtigt werden, die Frage ist, ob das System (und auch andere Programme) davon betroffen sind oder wirklich nur dein Programm.

Schau auch mal nach, ob sich in der Anleitung zu deinem Control (wenn vorhanden) so etwas wie das Word Modal findet, wenn etwas Modal geöffnet wurde, unterbricht es die Ausführung des aufrufenden Programms.


Der Doc!
 
Zurück