WinWaitActive() oderverknüpft?

  • Hallo zusammen

    Mal wieder werde ich vor ein Problem gestell, dass ich als Newbie nicht richtig hinbekomme.

    In meinem Script möchte ich gerne eine Datei speichern. Das klappt soweit auch. Ich spreche das "Speichern unter"-Fenster in das ich dann den Dateinamen eingebe direkt an

    [autoit]

    ControlSetText("Speichern unter", "", "Edit1", $outputfilewriteto)

    [/autoit]

    Jetzt kommt es aber vor, das auf einem anderen PC das gleiche Fenster nicht mehr "Speichern unter" sondern "Save As" heißt (doofe Multi UI-Umgebung hier). Da ich auf jeden Fall warten muss, bis das Fenstet überhaupt da ist, verwende ich WinWaitActive("Speichern unter", "")

    Das funktioniert natürlich nicht, wenn das Fensten nun aufeinmal "Save As" heißt. Kann ich das irgendwie ODER-Verküpfen? in der Hilfe und auch in den Beispielen hab ich nichts dazu gefunden... auch OR ist nicht wirklich dokumentiert. Ich hab keine Idee, wie ich weiterkomme.

    So klappt es auf jeden Fall nicht:

    [autoit]

    WinWaitActive("Speichern unter", "") Or WinWaitActive("Save As", "")
    ;bzw
    WinWaitActive(("Speichern unter", "") Or ("Save As", ""))

    [/autoit]

    Kann jemand helfen?

    Danke & Gruß,
    Matthias

    "Ausdauer wird früher oder später belohnt – meistens aber später" (Wilhelm Busch)

    Einmal editiert, zuletzt von matthias.s (2. August 2011 um 11:27)

  • Müsste eigentlich über Class statt über den WIndowstitel gehen.

    [autoit]

    WinWaitActive("[CLASS:Notepad]")

    [/autoit]

    Die Class des Fensters bekommst über das Autoit Window Info Tool raus.

    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.

  • Die Wait-Funktionen warten auf das Ereignis, das geht so nicht.
    Benutze stattdessen WinActive oderverknüpft in einer Schleife (Do...Until).

    Wow... Eine Schleife... Genau so klappt's... Danke, Oscar :rock:

    Gruß,
    Matthias

    "Ausdauer wird früher oder später belohnt – meistens aber später" (Wilhelm Busch)

  • [autoit]

    Do
    Sleep(20)
    Until ((Winexists("Update ", "")) = 1 Or (WinExists("Win (276","")) = 1)
    If WinExists("Win (276","") = 1 Then WinClose("Win (276","")

    [/autoit]

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o