Meldungsfenster von externen Programmen automatisch beantworten

  • Hallo

    Vielleicht kann mir jemand die grundsätzlich mögliche Vorgangsweise erläutern .. auch ob sowas überhaupt geht.

    Mit meinem Programm kann ich einen ganzen Verzeichniszweig ausdrucken. Jeder Verzeichniswechsel erzeugt einen Ausdruck auf andersfärbiges Papier aus einem zweiten Schacht.

    Beim Programmstart wird das Start-Verzeichnis in ein Array eingelesen und dann abgearbeitet. Soweit so gut, funktioniert auch gut mit xls, doc, pdf, jpg, gif usw..

    Hier im Prinzip:

    Wie muß ich vorgehen um Meldungen (= Meldungsfenster wie "Im Batchmodus können keine PDF/a gedruckt werden" o.ä.) vom shellexecutierten Programm (aka SumatraPDF) abzufragen, die auftauchen KÖNNEN aber nicht mÜSSEN, (zwecks Log-Datei-Eintrag) und zu bestätigen, damit der Ausdruck - der meist über Nacht erfolgt - nicht an dieser Stelle stehen bleibt und das Meldefenster auf eine Benutzeraktion wartet?

    Ein ähnliches Problem tritt auf wenn Excel ausgedruckt wird, aber noch kein Druckbereich definiert wurde.

    Ich muß shellexecutewait verwenden, da sonst die Reihenfolge der Dokumente innerhalb eines Verzeichnisses nicht stimmt.

    Meinem Verständnis nach müßte ein Task im Hintergrund auf solche Meldungsfenster lauern, dann ein OK absetzen und einen Eintrag in der Log-Datei vornehmen. Aber wie unterscheide ich solche Meldefenster programmtechnisch von einem Programmfenster das ich in der Zwischenzeit gestartet habe (und das nicht unter dem Kontext meines Druckprogrammes läuft)? Wie sieht das Programmtechnisch aus?

    Danke für jede Hilfe

    LG

  • Vielleicht zum besseren Verständnis (meines Unverständnisses ;))

    Sorry für den hölzernen Code, ist nur ein schnelles Bespiel zum probieren.

    Danke im Voraus für alle :Glaskugel: die mich erleuchten.

    LG

  • Du kannst ja mal einen kritischen Blick in die OutlookEX UDF werfen.

    Wenn mit _OL_Open die Verbindung zu Outlook gestartet wird, dann kann damit (optional) auch eine zweite AutoIt Exe gestartet werden, die alle Warnungs-Fenster von Outlook schließt.

    Diese zweite Exe endet automatisch, wenn das startende Skript endet.

  • Hi,

    water hat den Tip schon gegeben:

    Erstelle eine zweite AutoIt-Datei, welche sich ausschliesslich um das Schliessen und Protokollieren deiner "wegzuklickenden" Dialog-Fenster kümmert.

    Diese zweite Datei (Dialog-Programm) startest du am Anfang deines Hauptprogramms.

    Es macht auch Sinn im Dialog-Programm zu überprüfen, ob das Hauptprogramm läuft, wenn nicht, dann sollte es (das Dialog-Programm) sich beenden.

  • Guten Morgen

    Danke!

    Das mit der zweiten Datei war der entscheidende Hinweis. Wußte nicht wie ich eine selbstüberwachendes

    Programm realisieren könnte, da ja ein externes Programm zum Ausdruck aufgerufen wird.

    LG

  • Gelöst!

    Mittels eines Beitrages aus dem englischen AutoIt-Forum. Voraussetzung ist ein GUI (kann auch ein Dummy sein, bzw. ein unsichtbares Fenster).

    Bei den Case-Abfragen in WM_SHELLHOOK kann man dann weitere Fensterabfragen/-behandlungen einbauen.

    Grüsse

    LG