Hallo Profis,
ich hab' mal wieder ein typisches Anfängerproblem, das ich einfach nicht gelöst bekomme:
Bei der überwachung einer Installationsroutine warte ich auf das Fenster mit der Ende-Meldung, um dieses mit SEND zu bestätigen.
Breche ich jedoch die Inst.-Routine regulär ab, so erscheint dieses Fenster nie und das Script wartet artig bis zum Skt. Nimmerleinstag im RAM.
Starte ich dann die Inst.-Routine ein weiteres Mal über das gleiche Script, kommen sich beide Scripte in die Quere.
Ein Timeout für WinWait ist hier nicht anwendbar, da die Zeiten zwischen wenigen Sekunden und bis zu 30 Minuten variieren.
Ich habe mit folgendem Code versucht, das Problem über ProcessExists zu lösen, leider erfolglos:
If ProcessExists ("setup.exe") Then
winwait bla bla
send {Enter}
EndIf
Bis jetzt bin ich ganz naiv davon ausgegangen, daß sobald die 'If' - Bedingung wegfällt, alles zwischen 'if' und 'EndIf' nicht mehr abgearbeitet wird und das Programm dann mit dem folgenden Code weitermacht.
In diesem Fall ist es anscheinend so, daß wenn winwait erst einmal aktiv geworden ist, er wartet, bis das Fenster erscheint, auch wenn die 'If'-Bedingung längst nicht mehr erfüllt ist, weil "setup.exe" nicht mehr läuft. Bei einem 'Do' würde ich das ja erwarten, aber nichtbei 'If'.
Vielleicht mache ich ja auch mal wieder eine klitzekleine Kleinigkeit falsch. Hat eine(r) von Euch vielleicht eine Idee?
Mit freundlichen Grüßen
BinCZ