Brauche Hilfe bei Srcipt pausierung

  • Hallo, ich habe folgends Problem.
    Es gibt 2 AutoIt.exe Datein.
    Es ist möglich das beide Datein verzögert gestartet werden.
    Ich habe es so eingestellt das die EXE1 wider beendet wird, wenn die EXE2 innerhalb von 3 Sekunden auch geöffnet wird.

    Geledendlich kommt es aber vor, das die EXE2 nach mehr als 3 Sekunden nach der EXE1 gestartet wird. Sie beendet dann auch, so wie es von mir programmiert ist, die EXE1(mitten drin). Die Datei kann ihre Befehle dann nur bis gut zur Hälfte ausführen. Die EXE 2 kann dann nicht weiter arbeiten, weil wichtige Komandos noch nicht ausgeführt wurden. In diesem Fall muss die EXE1 jedoch ohne wenn und aber bis zum Ende ausgeführt werden und danach darf erst die EXE 2 weiter laufen.

    Leider ist es (aus Zeitgründen) nicht möglich die Zeit auf mehr als 3 Sekunden zu erhöhen.

    Der Befehl ProcessWaitClose("EXE1.exe") geht ja nicht, weil die EXE dann auch unter der 3 Sekunden frist komplett durchlaufen würde. Weis jemand rat? ?( :thumbup:

    Kurz gesagt: Gibt es einen Befehl der EXE2 pausiert bis EXE1 beendet ist, WENN EXE1 schon länger als xx Sekunden ausgeführt wurde? Z.B. ProcessWaitClose>5("EXE1.exe") oder was es da schönes gibt :)

    Einmal editiert, zuletzt von AutoIt1989 (7. August 2008 um 11:35)

  • ich bin mir nicht ganz sicher aber vllt hilft ja WinWaitActive (), dass könnte ja evtl helfen wenn die Exe ein Fenster gleichzeitig ist.

    Hoffe es hat geholfen.

  • So schaut das im Moment bei mir aus.

    $g_szVersion = "EXE2"
    If WinExists($g_szVersion) Then Exit ;
    AutoItWinSetTitle($g_szVersion)
    ProcessClose("EXE1.exe")
    ProcessWaitClose("EXE3.exe")
    ProcessWaitClose("EXE4.exe")
    ProcessWaitClose("EXE5.exe")
    Sleep(500)
    WinActivate("Kurznachricht senden", "")
    Sleep(250)
    WinWaitActive("Kurznachricht senden", "")

    Das heist, ich muss

    Sleep(500)
    WinActivate("Kurznachricht senden", "")
    Sleep(250)
    WinWaitActive("Kurznachricht senden", "")

    vor den Befehl ProcessClose("EXE1.exe") setzen?

    Dann wartet die EXE2 bis das Fenster wider da ist? Wenn das Fenster noch da ist wenn die EXE2 geöffnet wird, läuft die ganznormal ab und beendet EXE1 in der 3 Sekunden Frist wider?

  • Das Problem ist gelöst, es war der entscheidende Hinweis Hätte ich aber auch von Selber drauf kommen können :rolleyes: Wenn das Betreffende Fenster nicht mehr da ist muss die EXE2 automatisch warten bis es die EXE1 es wider geöffnet hat.... Wie doof von mir :rofl: