If WinExist then

  • Moin Leute...
    eins vorweg: ich bin ziemlich begeistert von AutoIt auch wenn ich noch ziemlich grün hinter den Ohren bin :D

    Mein derzeitiges Projekt ist es eine automatische Installation per Skript zu vollführen. Dieses Skript soll auf verschiedenen Rechnern laufen. Da ist der Haken: Manchmal kommen Fenster die bei einem anderen Rechner nicht kommen. Nun gibt es ja diese "if winexist then" phrase aber ich bin glaub zu blöd dafür^^

    AutoIt
    Run("cwblaunch.exe")
    if WinExists("IBM i Access") Then
       WinWaitActive("IBM i Access", "Dieses Setup führt ein Update")
       ControlClick("IBM i Access", "Dieses Setup führt ein Update", 6, "left")
    EndIf
    WinWait("Setup-Sprache auswählen", "Wählen Sie die Sprache")
    WinActivate("Setup-Sprache auswählen", "Wählen Sie die Sprache")
    ControlClick("Setup-Sprache auswählen", "Wählen Sie die Sprache", 1006, "left")
    [...]

    Immer wenn es zu dem Fenster kommt geht es nicht weiter. Meine Vermutung ist ja das ich irgendwo wieder einen banalen Fehler eingebaut habe....pls help :D

  • Mach mal vor das "If WinExists" noch

    AutoIt
    WinWait("IBM i Access","",5)

    Ich bezweifel, dass das Fenster in exakt der gleichen Millisekunde wie das Run ausgeführt wird erscheint ;). Mit dem Timeout musst etwas rumspielen und schauen was für deinen Fall am besten passt.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • hat soweit geklappt, danke dafür erstma

    aber wenn ich das so überdenke wartet er ja immer auf das fenster mit "ibm i access blah" und wenn das fenster nicht erscheint würde er ja nicht weiter springen oder?
    deswegen hatte ich ja winexist verwendet.
    korrigier mich bitte falls ich falsch liege

  • Schau dir mal die Hilfe zu dem Befehl an. Dann erübrigt sich deine Frage umgehend ;).

    Zitat von Hilfe
    timeout [optional] Timeout in seconds if the window does not exist. Default is 0 (no timeout).

    Im Beispiel oben geht er entweder wenn das Fenster erscheint oder wenn es länger als 5 Sekunden nicht erschienen ist weiter zu WinExists. WinExists prüft ob das Fenster genau in diesem Zeitpunkt der Abfrage existiert, daher vorher das WinWait.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.