WinWaitActive mit Variable

  • Hallo =)
    Wie kann ich "WinWaitActive" abhängig von einer variable machen?

    Ich möchte, dass ein Fesnter geschlossen wird, wenn 0 drin vorkommt und dass mein Script weiterläuft falls > 0 drin vorkommt.
    So habe ich es versucht:

    [autoit]


    $var = <> 0 ;diese Definition scheint nicht zu funktionieren

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

    If WinWaitActive ("Programm", "Ergebnis: 0 Treiber, 0 Software, 0 Updates", 0) Then
    WinClose ("DeskUpdate", "")
    Exit
    EndIf

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

    If WinWaitActive ("DeskUpdate", "Programm", "Ergebnis: " & $var & " Treiber, 0 Software, 0 Updates", 0)
    Send("{TAB}")
    Send("{TAB}")
    Send("{ENTER}")
    EndIf

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

    If WinWaitActive ("DeskUpdate", "Programm", "Ergebnis: 0 Treiber, " & $var & " Software, 0 Updates", 0)
    Send("{TAB}")
    Send("{TAB}")
    Send("{ENTER}")
    EndIf

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

    If WinWaitActive ("DeskUpdate", "Programm", "Ergebnis: 0 Treiber, 0 Software, " & $var & " Updates", 0)
    Send("{TAB}")
    Send("{TAB}")
    Send("{ENTER}")
    EndIf

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

    If WinWaitActive ("DeskUpdate", "Programm", "Ergebnis: "& $var &" Treiber, "& $var &" Software, 0 Updates", 0)
    Send("{TAB}")
    Send("{TAB}")
    Send("{ENTER}")
    EndIf

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

    If WinWaitActive ("DeskUpdate", "Programm", "Ergebnis: 0 Treiber, " & $var & " Software, " & $var & " Updates", 0)
    Send("{TAB}")
    Send("{TAB}")
    Send("{ENTER}")
    EndIf

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

    If WinWaitActive ("DeskUpdate", "Programm", "Ergebnis: " & $var & " Treiber, " & $var & " Software, " & $var & " Updates", 0)
    Send("{TAB}")
    Send("{TAB}")
    Send("{ENTER}")
    EndIf

    [/autoit]

    Ich habe so viele verschiedene Kombinationen, da die einzige Bedingung ist, dass nicht alle Werte = 0 sein sollen.
    vielleicht geht es auch, dass für den Fall $var = 0 geschlossen wird und für alle anderen Fälle (z.B. WinWaitActive ("DeskUpdate", "Programm", "Ergebnis:", 0)) das Skript weiter ausgeführt wird.

    Ich bin über jeden Tip dankbar =)

  • Danke für die schnelle Antwort.

    Eigentlich hat WinWaitActive bei mir auch nur 3 Parameter. Die 6 verschiedenen Fälle haben auch nur 3 Parameter, aber ich habe versucht, den Wert 0 durch die Variable (>0) zu ersetzen.

    Nochmal zu meinem Vorhaben:
    Ich hab ein Programm, dass nach Updates sucht. Wenn es keine Updates findet, erscheint ein Fenster mit folgendem Text: "Ergebnis der Suche: 0 Treiber, 0 Software, 0 Windows Updates"
    Falls Updates gefunden werden, steht da zum Beispiel: "Ergebnis der Suche: 3 Treiber, 0 Software, 9 Windows Updates".
    Ich möchte, dass beim ersten Fall (alle Werte = 0) das Fenster geschlossen wird.
    Beim zweiten Fall, soll das Script weiterlaufen und die updates werden installiert.

  • Du kannst in einer Variable keine Abfrage definieren aber mit der Variablen kannst du in einer if abfrage etwas abfragen.
    Außerdem empfehle ich dir die Hilfe etwas anzuschauen da wird genau erklärt was WinWaitActive macht und was die einzelnen parameter sind.
    ich rate jetzt mal, das du etwar sowas meinst:

    [autoit]

    While True
    WinWaitActive("DeskUpdate")
    Local $WinText = WinGetText("DeskUpdate")
    If StringInStr($WinText, "0 Treiber, 0 Software, 0 Updates") Then
    WinClose("DeskUpdate")
    Else
    ; Hier Dein Code wenn updates verfügbar
    Endif
    WEnd

    [/autoit]


    Habe hier jetzt kein AutoIt und auch nicht dein Programm um zu sehen ob es klappt. einfach mal ausprobieren.

    2 Mal editiert, zuletzt von Skerg (3. Dezember 2013 um 13:21)

  • Vielen Dank =)
    Ich habe mir nochmal genau meine Fenster mit hilfe des AutoIt Window Info Tool angeschaut und festgsestellt, dass es sichtbaren Text gibt, der unterschiedlich ist, je nachdem ob Updates gefunden worden sind, oder nicht.
    Das hat es erheblich vereinfacht und ich brauche nur ein WinWaitActive zu benutzen.

    Nochmal Danke für die Hilfe.
    Eggsplorer