Mausklickkoordianten aus Array ausführen

  • N' Abend zusammen!
    Mein Ziel ist es ja nach im GUI angeklickten Radio die Maus an eine andere Stelle klicken zu lassen.
    Im Moment probiere ich das so, dass ich eine Array mit den Koordinaten erstelle und dann einfach die Array in den MouseClick Befehl reinschreib...

    Hier mal ein Auszug aus dem Skript:

    Spoiler anzeigen
    [autoit]

    Global $Feld[3] = ['629, 375','1005, 373','1005, 657']

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

    For $f1=0 To 14
    If BitAND(GUICtrlRead($Radio[$f1]), $GUI_CHECKED) Then MouseClick ("left", $Feld[0], 1, 0)
    Next
    For $f2=16 To 30
    If BitAND(GUICtrlRead($Radio[$f2]), $GUI_CHECKED) Then MouseClick ("left", $Feld[1], 1, 0)
    Next
    For $f3=32 To 46
    If BitAND(GUICtrlRead($Radio[$f3]), $GUI_CHECKED) Then MouseClick ("left", $Feld[2], 1, 0)
    Next

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

    Das geht so aber nicht. Wie denn dann ?!?! :?:
    Wär echt froh, wenn mir da jmd ne Möglichkeit bieten könnte!
    Danke und Grüße!
    Maxore

    Einmal editiert, zuletzt von Maxore (7. Februar 2010 um 10:55)

  • Herzlich willkommen im Forum.
    Also, du benutzt die Koordinaten so, "x, y".
    Aber MouseClick will es so, "x", "y"
    Aus

    [autoit]

    MouseClick ("left", $Feld[0], 1, 0)

    [/autoit]


    Muss

    [autoit]

    MouseClick("left", "629", "375", 1, 0)

    [/autoit]


    werden.
    Du könntest die Koordinaten in einem 2 Dimensionalen Array speichern.
    Beispiel:

    [autoit]

    $Feld[1][1] = '629/375'

    [/autoit]


    Der letzte Code könnte fehler enthalten ;)
    MfG. PrideRage

    Meine Projekte:
    ClipBoard Manager (beendet)
    Gutes ClipBoard Verwaltungs Programm mit nützlichen Funktionen.

    HTML Creator (beendet)
    Nützliches Tool um schnell ein eigenes HTML Dokument zu erstellen.

  • Das liegt daran, das im Array Strings sind, du brauchst aber Integers. Nimm am besten ein 2D Array mit den Zahlen drin.

    [autoit]

    Global $Feld[3][2] = [[629, 375], [1005, 373], [1005, 657]]

    [/autoit]

    Edit: Strings geht ja auch ^^

    Einmal editiert, zuletzt von m-obi (6. Februar 2010 um 23:41)

  • aber wie muss ich es denn in den MouseClick-Befehl einbauen?
    wenn ichs so mach, dann passiert einfach gar nichts ...

    Spoiler anzeigen
    [autoit]

    If BitAND(GUICtrlRead($Radio[$f1]), $GUI_CHECKED) Then MouseClick ("left", ($Feld[0][0]), 1, 0)

    [/autoit]

    Sry, aber mit 2D-Array kenn ich mich halt gar nicht aus ;)
    Habs auch schon ohne Klammer, mit " oder ' um den $Feld[0][0] Ausdruck probiert...

  • [autoit]

    MouseClick("left", ($Feld[0][0]), ($Feld[0][1]), 1, 0)

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

    ;$Feld[0][0] -> liest die erste Spalte der ersten Zeile deines Arrays
    ;$Feld[0][1] -> liest die zweite Spalte der ersten Zeile deines Arrays

    [/autoit][autoit]

    #include <array.au3>
    Global $Feld[3][2] = [[629, 375], [1005, 373], [1005, 657]]
    _ArrayDisplay($Feld)

    [/autoit]
  • Hab dir mal einen Ansatz gegeben wo dir vielleicht das Prinzip klarer wird.
    Mouseclick kannst du dann selbst draus machen:

    Spoiler anzeigen
    [autoit]

    Global $Feld[3][2] = [[629, 375],[1005, 373],[1005, 657]]

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

    For $i = 0 To UBound($Feld, 1) - 1
    ConsoleWrite("------ Klick " & $i + 1 & " ---------" & @CRLF)
    ConsoleWrite("X-Koordinate: " & $Feld[$i][0] & @CRLF)
    ConsoleWrite("Y-Koordinate: " & $Feld[$i][1] & @CRLF & @CRLF)
    Next

    [/autoit]
  • Sry, aber mit 2D-Array kenn ich mich halt gar nicht aus ;)
    Habs auch schon ohne Klammer, mit " oder ' um den $Feld[0][0] Ausdruck probiert...

    Dann wage dich erst nicht an 3D ran. :P