if / else mit Fenstertitel, Inhalten

  • Hallo zusammen,


    bin neu in der Arbeit mit Autoit und benutze es nur um Setups zu automatisieren. Komme prima zurecht soweit,
    nur bei einem Programm brauche ich Hilfe.
    Müsste da irgendwie eine if / else Abfrage einbauen. Ich finde auch Codeschnippsel als Beispiele für soetwas,
    allerdings nur mit Variablen. Wie ich das für meine ZWecke einsetzen kann weiß ich leider nicht.

    Es gibt ein Programm das beim Setup erkennt welche Sprache das OS hat und dementsprechend die Fenstertitel und Texte
    ändert.


    Ich möchte ungefähr sowas basteln: ( Ich habe mir den Syntax für if / else Abfragen nicht genau angesehen ).


    if ( WinWaitActive("Installation DEUTSCH","Es wird jetzt das installiert") )
    ControlClick("Installation DEUTSCH","Es wird jetzt das installiert","Button2")
    elsif
    ( WinWaitActive("installation ENGLISH","Something is being installed") )
    ControlClick("installation ENGLISH","Something is being installed","Button2")


    Kann mir bitte jemand helfen?


    Vielen Dank !!

    Einmal editiert, zuletzt von minidump (21. Oktober 2009 um 13:10)

  • probier mal sowas in der art:

    [autoit]


    do
    sleep(50)
    until winexists("installation ENGLISH","Something is being installed") or winexists("Installation DEUTSCH","Es wird jetzt das installiert") ; hier muss es naturlich until heißen und nich while

    [/autoit][autoit][/autoit][autoit]

    if winexists("installation ENGLISH","Something is being installed") then
    winactivate("installation ENGLISH","Something is being installed")
    ControlClick("Installation DEUTSCH","Es wird jetzt das installiert","Button2")
    elseif winexists("Installation DEUTSCH","Es wird jetzt das installierd") then
    winactivate("installation ENGLISH","Something is being installed")
    ControlClick("installation ENGLISH","Something is being installed","Button2")
    endif

    [/autoit]

    is jetz aber frei ausn kopf geschrieben, kann sein dassd noch was ändern musst aber so in der art würds funktionieren

    Edit: fehler im script verbessert

  • Danke für die schnelle Antwort.


    Habs mal so getestet:



    Auf deutschen Systemen läuft das Setup durch, bei englischen leider nicht. Liegt das daran dass ich die while Schleife weggelassen hab? Habs mal mit der While Schleife getestet da bekomm ich den Fehler dass while kein Matching hat.


    Danke dir !

  • Fehlinfo, hatte es wohl nicht richtig gespeichert auf dem deutschen System und habe die Version ohne if gespeichert.

    Läuft garnicht durch, weder die erste Abfrage noch die zweite.

    Habs mal auf beiden ohne if getestet um sicherzustellen dass die Titel und alles stimmen, daran liegts nicht, so läufts durch.

  • das problem bei deinem script wird sein, dass die Gui von der installation noch nicht fertig geladen ist und er schon die if abfrage macht.
    d.h. er frägt schon ob eins der beiden fenster existiert noch bevor die installations-gui da ist.

    hier mal mein vorschlag:

    Spoiler anzeigen
    [autoit]

    Do
    Sleep(100)
    Until WinExists("Hardcopy Installation", "Es wird jetzt das Programm Hardcopy installiert") Or WinExists("Hardcopy installation", "Setup is ready to install Hardcopy")

    [/autoit] [autoit][/autoit] [autoit]

    If WinExists("Hardcopy Installation", "Es wird jetzt das Programm Hardcopy installiert") Then Ger()
    If WinExists("Hardcopy installation", "Setup is ready to install Hardcopy") Then Engl()

    [/autoit] [autoit][/autoit] [autoit]

    Func Ger()
    WinWaitActive("Hardcopy Installation", "Es wird jetzt das Programm Hardcopy installiert")
    ControlClick("Hardcopy Installation", "Es wird jetzt das Programm Hardcopy installiert", "Button2")
    WinWaitActive("Hardcopy Installation", "Bitte geben Sie hier das Verzeichnis an")
    ControlClick("Hardcopy Installation", "Bitte geben Sie hier das Verzeichnis an", "Button11")
    WinWaitActive("Hardcopy Installation", "Bitte geben Sie hier die Programmgruppe an")
    ControlClick("Hardcopy Installation", "Bitte geben Sie hier die Programmgruppe an", "Button3")
    ControlClick("Hardcopy Installation", "Bitte geben Sie hier die Programmgruppe an", "Button11")
    WinWaitActive("Hardcopy Installation", "Volle Installation")
    ControlClick("Hardcopy Installation", "Volle Installation", "Button8")
    ControlClick("Hardcopy Installation", "Volle Installation", "Button12")
    WinWaitActive("SwSetupu", "OK")
    ControlClick("SwSetupu", "OK", "Button1")
    EndFunc ;==>Ger

    [/autoit] [autoit][/autoit] [autoit]

    Func Engl()
    WinWaitActive("Hardcopy installation", "Setup is ready to install Hardcopy")
    ControlClick("Hardcopy installation", "Setup is ready to install Hardcopy", "Button2")
    WinWaitActive("Hardcopy installation", "Please type the directory")
    ControlClick("Hardcopy installation", "Please type the directory", "Button11")
    WinWaitActive("Hardcopy installation", "Please, type a new program group name")
    ControlClick("Hardcopy installation", "Please, type a new program group name", "Button3")
    ControlClick("Hardcopy installation", "Please, type a new program group name", "Button11")
    WinWaitActive("Hardcopy installation", "Full installation")
    ControlClick("Hardcopy installation", "Full installation", "Button8")
    ControlClick("Hardcopy installation", "Full installation", "Button12")
    WinWaitActive("SwSetupu", "OK")
    ControlClick("SwSetupu", "OK", "Button1")
    EndFunc ;==>Engl

    [/autoit]