Frage zum Run-Befehl und Show_Flag @SW_Hide

  • Hallo zusammen,

    der Aufruf des Run-Befehls mit dem Show_flag @SW-Hide sorgt nicht für das erwartete Ergebnis. Der Ablauf der externen Anwendung wird entgegen meiner Erwartung, weiterhin am Bildschirm angezeigt. Nachfolgend angezeigter Code läuft vollkommen korrekt ab. Tausche ich jedoch Zeile 1 durch Zeile 2, erfolgt kein Ablauf im Hintergrund. Zudem muss in diesem Falle auch noch "STop Executing" im Scite-Editor gedrückt werden, damit die Anwendung gestoppt wird.

    Meine Lösungsversuche haben mich gestern den ganzen Sonntag gekostet. :wacko:

    Kann mir jemand helfen ?

    Vielen Dank. Zekatous...

    Run("D:\windata\blackbox\wd8bb.exe")
    ;Run("D:\windata\blackbox\wd8bb.exe,"",@SW_HIDE)
    WinWaitActive("windata: windata8 - [Bankkontake - Verwaltung]")
    Send("!k")
    WinWaitActive("windata: windata8")
    Send("!n")
    WinWaitActive("Auftraggeber")
    Send("Test-Kontobezeichnung")
    Send("{TAB}")
    send("Kundenname")
    send ("{TAB}")
    send ("G")
    send ("{TAB 3}")
    send ("724179701")
    send ("{TAB}")
    send ("59040000")
    send ("{TAB}")
    send ("!b")
    sleep(1000)
    send ("!a")
    WinWaitActive("windata: windata8")
    send ("!S")
    WinWaitActive("windata: windata8 - [Bankkontake - Verwaltung]")
    send ("!S")
    sleep(1000)
    Winclose("windata: windata8 - [Bankkontake - Verwaltung]")
    msgbox(0, "", "Konto wurde neu angelegt")

    • Offizieller Beitrag

    Wie soll das bei WinWaitActive auch gehen, bei einem versteckten Fenster?

    Zitat

    WinWaitActive
    Pauses execution of the script until the requested window is active.

    Probier es mal mit WinWait.

  • Nur mit WinWait funktionierte es auch nicht. Wenigstens muss danach aber kein "Stop Executing" im SCite mehr gedrückt werden.

    Gestern habe ich auch folgenden Lösungsansatz aus dem Jahre 2005 im englischsprachigen AutoIT-Forum gefunden. Da hatte jemand die gleichen Probleme:

    Opt('WinWaitDelay', 10)
    Run("rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,1")
    WinWait("System Properties")
    WinSetState("System Properties","",@SW_HIDE)
    Opt('WinWaitDelay', 250)

    http://www.autoitscript.com/forum/topic/18…nt-hide-window/

    Diesen Tip habe ich integriert - leider mit wenig Erfolg - die Fenster werden noch immer angezeigt...

    Es ist wohl sinnvoll, wenn man der Beschreibung glauben darf, auf den ControlSend-Befehl umzustellen aber das dürfte dann ja nichts mit dem "Hidden -Problem" zu tun haben...

    Danke schon mal für eure Antworten.

    Gruß zekatous

  • Nein, das war nur das (gelöste) Beispiel aus dem englischsprachigen Forum.

    Ich möchte einfach eine externe Anwendung scriptgesteuert aufrufen und quasi komplett fernsteuern. Der komplette Vorgang soll versteckt ablaufen. O.a. Script funktioniert ja fast schon genau so, wie ich es haben will. Nur eben der "versteckte" ABlauf will mir nicht gelingen...

    run("D:\windata\blackbox\wd8bb.exe")
    ;Run("D:\windata\blackbox\wd8bb.exe","",@SW_HIDE)
    WinWait("windata: windata8 - [Bankkontake - Verwaltung]")
    Send("!k")
    WinWait("windata: windata8")
    Send("!n")
    WinWait("Auftraggeber")
    Send("Test-Kontobezeichnung")
    Send("{TAB}")
    send("Kundenname")
    send ("{TAB}")
    send ("G")
    send ("{TAB 3}")
    send ("724179701")
    send ("{TAB}")
    send ("59040000")
    send ("{TAB}")
    send ("!b")
    sleep(1000)
    send ("!a")
    WinWait("windata: windata8")
    send ("!S")
    WinWait("windata: windata8 - [Bankkontake - Verwaltung]")
    send ("!S")
    sleep(1000)
    Winclose("windata: windata8 - [Bankkontake - Verwaltung]")
    msgbox(0, "", "Konto wurde neu angelegt")