Winexists

  • Hallo,

    ich mache folgende Abfrage:

    Mein Fenster hat die Beschriftung "(0) - TEXT - Automatischer Import"
    Eingestellt habe ich

    AutoItSetOption("WinTitleMatchMode",1)
    If WinExists("(0) - TEXT - Automatischer Import","") Then
    msgbox(4096,"STATUS","STATUS1",2)
    endif

    If WinExists("TEXT","") then
    msgbox(4096,"STATUS","STATUS2",2)
    endif

    Beim Ausführen bring er aber beide Meldungen. Wieso?
    Ich hatte erwartet, dass nur die erste Meldung kommt.
    Er soll von links lesen und herausfinden ob links (0) - Text steht oder nur Text.

    Wo liegt mein Fehler?

    Gruss
    Anfänger

    Einmal editiert, zuletzt von anfänger (4. April 2011 um 16:26)

  • Schau dir mal die Hilfe zu wintitlematchmode an. Vielleicht solltest du den exact title match mode verwenden, dann müsste aber deine zweite if Abfrage ebenfalls den exakten String beinhalten. Oder du änderst vor der Abfrage den match mode, kA ob das während der Laufzeit geändert werden darf/kann.

    Beispiel:

    [autoit]


    AutoItSetOption("WinTitleMatchMode",3)
    If WinExists("(0) - TEXT - Automatischer Import","") Then
    msgbox(4096,"STATUS","STATUS1",2)
    else
    AutoItSetOption("WinTitleMatchMode",1) ; wie gesagt nicht getestet ob das geht
    If WinExists("TEXT","") then
    msgbox(4096,"STATUS","STATUS2",2)
    endif
    endif

    [/autoit]
  • Danke für die Info.

    Nach exaktem Text kann ich leider nicht suchen,
    da manchmal in dem Fenster
    TEXT blablabla steht oder
    TEXT slkdjlskdjf oder
    TEXT
    und immer wenn zumindest TEXT am Anfang kommt möchte ich reagieren.
    Er soll aber nicht reagieren, wenn "(0) - TEXT " drin steht.

    Gruss
    Anfänger

  • Nuja dann funktioniert die Lösung über den else Zweig aber trotzdem. So bekommst du auf jedenfall nur eine der msgboxen. Es kann natürlich sein dass er im match mode 1 immer die erste Bedingung als wahr ansieht, das müsstest du dann mal testen. Andere Möglichkeiten gibt es aber auch noch. Du kannst z.B. wingettitle() verwenden, hier gibst du als Parameter dann die class , instance usw an, siehe Hilfe und au3info. Den Titel den du erhälst kannst du dann z.B. mit stringinstr überprüfen.