2 Bedingungen in While Schleife

  • Hallo liebe Gemeinde,

    Ich stehe gerade auf dem Schlauch, vllt hab ihr eine Idee. ?(
    Mein Script soll erst arbeiten, wenn mindestens eine von den zwei Variablen bzw. Bedingungen erfüllt ist.

    Das Script arbeitet bei der ersten Variable aber bei der zweiten Variable passiert einfach nichts. Hab ich iwas vergessen oder warum passiert da nichts,

    komm einfach nich drauf. :Face:

    Hier mein Code:

    Bitte Helft mir!

  • Wie immer wenn man das unsägliche Pixelsearch in Verbindung mit MouseClick sieht die obligatorische Frage:
    Was möchtest du konkret wie erreichen?
    Um welches Programm handelt es sich?

    Dann können wir uns Gedanken machen um eine vernünftige Variante welche ohne PixelSearch und MouseClick auskommt.

  • In diesem Fall lässt sich meiner Meinung nach Pixelsearch nicht verhindern.

    Das ganze Script soll meinem alten 3D Drucker helfen kontinuierlich meine Projekte weiter zu drucken.

    Er spuckt zwei unterschiedlich farblich gekennzeichnete Fehlermeldungen aus die laut Hersteller auch nicht weiter relevant sind.

    Das Problem nur ist, dass er dann stehen bleibt und so ein Programm schon mal 9h laufen kann. Darum wollte ich etwas zusammenstellen was

    die Meldungen fürs erste quittieren so dass er problemlos weiterläuft.

  • Das AutoIt-Window-Info Tool kennst du? (ist bei Scite4Autoit dabei).
    Wenn ein solches Fenster auftaucht das Window-Info-Tool starten und mal hier die Zusammenfassung posten.
    Würde mich arg wundern wenn man diese Fenster nicht mit den Window- bzw. Controlfunktionen ansprechen kann.

  • Naja in der Window Funktion wäre bloß dass Fenster drum rum anwählbar. Den Button selbst bekomme ich nicht angesteuert, Hier meine Zusammenfassung für das Fenster (was mir wenig bringt)

    Title Start_3D_Optic
    Class Start_3D_OpticWindow
    Position 296, 48
    Style 0x16CF0000
    ExStyle 0x00000110
    Handle 0x00020180

    In diesem Fall geht es wirklich nicht, weil der Button in diesem Fenster sich einfach nicht durch dass Window-Tool ansteuern lässt, da habe ich jetzt gerade viel rumprobiert.
    Dass selbe bei der Control Funktion ....

    4 Mal editiert, zuletzt von TigerWoods (27. August 2017 um 22:24)

  • Um die Gemüter gnädig zu stimmen, wie wäre der Kompromiss eines Screenshots für die Anwendung?

    Vielleicht wäre man ja dann hier bereit zu helfen (auch wenn Pixelsearch einen Bot-Bau vermuten lässt)?

  • In deinem oberen Skript ist in Zeile 5:

    AutoIt
    If IsArray($px99) Or ($pxs) Then


    Du hast bei dem 2ten Ausdruck lediglich das IsArray() vergessen.

    AutoIt
    If IsArray($px99) Or IsArray($pxs) Then
  • Statt einem Pixelsearch in Dauerschleife könntest du auch mit WinWait oder WInExists arbeiten. Title und ClassName des Fensters hast du ja.
    Jetzt wäre interessant ob der fragliche Button auch per Tastatur betätigt werden kann. (z.B. per Enter).
    Dann könnte man auch statt MouseClick mit ControlSend arbeiten.

    Wenn der Button innerhalb des Fensters immer an der selben Position steht wäre es sinnvoll statt absoluter MouseClick-Koordinaten relative des Fensters zu nehmen.
    Das wäre deutlich sicherer als per Pixelsearch und Absolutkoordinaten. Die Option wäre MouseCoordMode auf 0 zu setzen.
    Also: Auf Window warten, Window aktivieren, MousClick mit den festen relativen Koordinaten.