PixelSearch, Switch, Select etc

  • Guten Abend liebe Community,

    Seit ein paar Wochen mit Pause beschäftige ich mich nun mit AutoIT.
    Ich habe ein Ego-Projekt, was ich nun endlich zuende bringen möchte,
    ich habe schon das geschafft was es eigentlich machen sollte, allerdings muss ich
    sagen fehtl mir noch etwas um dieses Script zu perfektionieren.

    Ich erkläre mal was ich genau was möchte, damit ihr das versteht und mir vielleicht helfen könnt.


    [Blockierte Grafik: http://www2.pic-upload.de/img/32130424/Capture.png]

    Button: Position Mitte> Bei klick von Linker Maustaste wird die Aktuelle Position in einer Variable geschrieben
    Button: Position OL (Oben Links)> Das gleiche wie oben
    Button: Farbe> PixelGetColor bei Linksklick
    Button: Start> PixelSearch sucht in einer Box die gewählte Farbe.


    So um was es nun geht:
    [Blockierte Grafik: http://www2.pic-upload.de/img/32130462/Untitled.png]

    Ich hab hier eine Box mit punkten.
    Die Schwarzen Linien sind normalerweise nicht da,
    sondern nur um es besser veranschaulichen zu können.

    Was das Script machen soll:

    Man klickt auf Button Mitte und klickt in die Mitte,
    danach das gleiche mit Button OL nur oben Links in
    der Ecke.

    Danach klickt man auf Button Farbe und klickt auf einen
    Farbigen Punkt.

    Das Funktioniert bis jetzt SUPER!


    ABER ich möchte, das wenn ich die zwei Buttons klicke und die positionen habe,

    den Radius innerhalb ders Linken oberen quaders durch 4 teilen und mit

    PixelSearch von der kleinsten Box zur größeren wechseln.


    Die Formel dafür habe ich auch, funktioniert eigentlich, allerdings

    schaffe ich es einfach nicht, die richtige Funktion dafür zu schreiben,

    das will mir einfach nicht gelingen, da hängt es schon an einigen dingen.


    Nun zur Frage:


    1.

    AutoIt
    Switch <expression>
        Case
           ...
        Case
           ...
        Case
           ...
    SwitchEnd


    Ich kapiere einfach nicht was ich bei Expression machen soll, ich habe mir die helpfile
    angeschaut, aber ich kapiere es einach wirklich nicht, was schreibt man bei Expression rein?

    2.
    Ich möchte sowas wie das hier machen, kann das aber nicht realisieren, vielleicht habt ihr eine Idee?

    AutoIt
    While 1 
        PixelSearch(kleinstebox)
        PixelSearch(nächst größere Box)
        PixelSearch(nächst größere Box)
        PixelSearch(größte Box)
    WEnd

    Sprich: Führe PixelSearch aus, von Innen nach aussen, mach ich das mit if? switch? Select?
    ich komme da einfach nicht weiter <X Bitte steinigt mich nicht, ich habs echt versucht
    und ewig gegooglet und hoffe ihr könnt mir helfen.

    VIELEN Dank

    Einmal editiert, zuletzt von Grave92 (16. November 2016 um 22:46)

  • Zum Switch:

    AutoIt
    $nummer=3
    Switch $nummer
        Case 1:
            ;To
        Case 3:
            ;Juhu, Nummer ist 3
    EndSwitch


    Man kann einen Wert dort übergeben und die Case behandeln die möglichen Eingaben. Gibt es kein Case dafür wird Case Else genommen. Existiert der nicht passiert nichts.

    zu 2.:
    Nimm zum Beispiel ne For-Schleife:

    AutoIt
    for $i=1 to 4 step 1
    	PixelSearch(0,0,100*$i,100*$i,0x000000)
    next

    Hier wir erst von 0:100 bis 0:100 gesucht, dann von 0:200 bis 0:200,... bis 0:400
    Die Werte musst du dir dann passend berechnen, dass es so ist wie du es haben möchtest.

  • Zum Switch:

    AutoIt
    $nummer=3
    Switch $nummer
        Case 1:
            ;To
        Case 3:
            ;Juhu, Nummer ist 3
    EndSwitch

    Man kann einen Wert dort übergeben und die Case behandeln die möglichen Eingaben. Gibt es kein Case dafür wird Case Else genommen. Existiert der nicht passiert nichts.

    zu 2.:
    Nimm zum Beispiel ne For-Schleife:

    AutoIt
    for $i=1 to 4 step 1
    	PixelSearch(0,0,100*$i,100*$i,0x000000)
    next

    Hier wir erst von 0:100 bis 0:100 gesucht, dann von 0:200 bis 0:200,... bis 0:400
    Die Werte musst du dir dann passend berechnen, dass es so ist wie du es haben möchtest.

    Hey vielen Dank, ich werde mir das morgen mal anschauen ! :)