Problem mit Array

  • Hallo Leute: Hab ein Problem mit diesem Script (Es handelt sich hierbei um ein zur demonstration des Problems erstelltes Skript)

    [autoit]

    Func _CheckPlace($1,$2,$3)

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

    $pos = PixelSearch(20,500,21,501,0xFFFFFF,100)
    Return $Pos
    EndFunc

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

    $WinData = WinGetPos("Google - Mozilla Firefox")
    $WindowCount = 0
    $i = 0
    For $k = 0 to 5 ;Reached bottom of window
    Local $Place[2][1] = [[$WinData[0]],[0+$i]] ;Starting Pos
    Local $Space[2][1] = [[$WinData[1]],[210]] ;Reach
    $SubFolderID = "INSERT INI SEKTIONNAME"
    $Pos = _CheckPlace($SubFolderID, $Place, $Space)
    Local $WindowArray[200][2]

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

    If IsArray($Pos) Then
    $i = $Pos[1] - $WinData[1] + 1
    $WindowCount = $WindowCount + 1
    If UBound($WindowArray) Then
    ReDim $WindowArray[UBound($WindowArray) * 2][2]
    EndIf
    $WindowArray[$WindowCount][0] = $Pos[0]
    $WindowArray[$WindowCount][1] = $Pos[1]
    Else
    $i = $i + 58
    EndIf

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

    Next

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

    ReDim $WindowArray[$WindowCount][2]
    For $i = 0 To UBound($WindowArray)-1
    MsgBox(0, "", "Position of SubFolder " & $i + 1 & "in Folder X:" & $WindowArray[$i][0] & "and Y" & $WindowArray[$i][1])
    MouseMove($WindowArray[$i][0],$WindowArray[$i][1])
    Next

    [/autoit]

    Das Problem: Die Koordinaten des Gefunden Pixels werden nicht angezeigt.

    Um das Script zu testen einfach auf der Google Mainpage ausführen, oder Farbe und Fenster ändern

    Hier eine funktionierende Version des Scripts, jedoch ohne die möglichkeit der unendlichkeit:

    [autoit]

    Func _CheckPlace($1,$2,$3)

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

    $pos = PixelSearch(20,500,21,501,0xFFFFFF,100)
    Return $Pos
    EndFunc

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

    $WinData = WinGetPos("Google - Mozilla Firefox")
    $WindowCount = 0
    $i=0
    For $k = 0 to 5

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

    Local $Place[2][1] = [[$WinData[0]],[0+$i]] ;Starting Pos
    Local $Space[2][1] = [[$WinData[1]],[210]] ;Reach

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

    $SubFolderID = "INSERT INI SEKTIONNAME"
    $Pos = _CheckPlace($SubFolderID, $Place, $Space)
    If IsArray($Pos) Then
    $i = $Pos[1] - $WinData[1] +1
    $WindowCount = $WindowCount + 1
    If $WindowCount = 1 Then
    $Win1 = $Pos
    ElseIf $WindowCount = 2 Then
    $Win2 = $Pos
    ElseIf $WindowCount = 3 Then
    $Win3 = $Pos
    ElseIf $WindowCount = 4 Then
    $Win4 = $Pos
    ElseIf $WindowCount = 5 Then
    $Win5 = $Pos
    ElseIf $WindowCount = 6 Then
    $Win6 = $Pos
    ElseIf $WindowCount = 7 Then
    $Win7 = $Pos
    ElseIf $WindowCount = 8 Then
    $Win8 = $Pos
    ElseIf $WindowCount = 9 Then
    $Win9 = $Pos
    ElseIf $WindowCount = 10 Then
    $Win10 = $Pos
    ElseIf $WindowCount = 11 Then
    $Win11 = $Pos
    ElseIf $WindowCount = 12 Then
    $Win12 = $Pos
    ElseIf $WindowCount = 13 Then
    $Win13 = $Pos
    ElseIf $WindowCount = 14 Then
    $Win14 = $Pos
    ElseIf $WindowCount = 15 Then
    $Win15 = $Pos
    ElseIf $WindowCount = 16 Then
    $Win16 = $Pos
    ElseIf $WindowCount = 17 Then
    $Win17 = $Pos
    ElseIf $WindowCount = 18 Then
    $Win18 = $Pos
    ElseIf $WindowCount = 19 Then
    $Win19 = $Pos
    EndIf

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

    Else
    $i=$i+58
    EndIf

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

    Next

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

    If $WindowCount = 0 Then
    Local $WindowArray = "Error"
    ElseIf $WindowCount = 1 Then
    Local $WindowArray[$WindowCount][2] = [[$Win1[0],$Win1[1]]]
    ElseIf $WindowCount = 2 Then
    Local $WindowArray[$WindowCount][2] = [[$Win1[0],$Win1[1]],[$Win2[0],$Win2[1]]]
    ElseIf $WindowCount = 3 Then
    Local $WindowArray[$WindowCount][2] = [[$Win1[0],$Win1[1]],[$Win2[0],$Win2[1]],[$Win3[0],$Win3[1]]]
    ElseIf $WindowCount = 4 Then
    Local $WindowArray[$WindowCount][2] = [[$Win1[0],$Win1[1]],[$Win2[0],$Win2[1]],[$Win3[0],$Win3[1]],[$Win4[0],$Win4[1]]]
    ElseIf $WindowCount = 5 Then
    Local $WindowArray[$WindowCount][2] = [[$Win1[0],$Win1[1]],[$Win2[0],$Win2[1]],[$Win3[0],$Win3[1]],[$Win4[0],$Win4[1]],[$Win5[0],$Win5[1]]]
    ElseIf $WindowCount = 6 Then
    Local $WindowArray[$WindowCount][2] = [[$Win1[0],$Win1[1]],[$Win2[0],$Win2[1]],[$Win3[0],$Win3[1]],[$Win4[0],$Win4[1]],[$Win5[0],$Win5[1]],[$Win6[0],$Win6[1]]]
    ElseIf $WindowCount = 7 Then
    Local $WindowArray[$WindowCount][2] = [[$Win1[0],$Win1[1]],[$Win2[0],$Win2[1]],[$Win3[0],$Win3[1]],[$Win4[0],$Win4[1]],[$Win5[0],$Win5[1]],[$Win6[0],$Win6[1]],[$Win7[0],$Win7[1]]]
    ElseIf $WindowCount = 8 Then
    Local $WindowArray[$WindowCount][2] = [[$Win1[0],$Win1[1]],[$Win2[0],$Win2[1]],[$Win3[0],$Win3[1]],[$Win4[0],$Win4[1]],[$Win5[0],$Win5[1]],[$Win6[0],$Win6[1]],[$Win7[0],$Win7[1]],[$Win8[0],$Win8[1]]]
    ElseIf $WindowCount = 9 Then
    Local $WindowArray[$WindowCount][2] = [[$Win1[0],$Win1[1]],[$Win2[0],$Win2[1]],[$Win3[0],$Win3[1]],[$Win4[0],$Win4[1]],[$Win5[0],$Win5[1]],[$Win6[0],$Win6[1]],[$Win7[0],$Win7[1]],[$Win8[0],$Win8[1]],[$Win9[0],$Win9[1]]]
    ElseIf $WindowCount = 10 Then
    Local $WindowArray[$WindowCount][2] = [[$Win1[0],$Win1[1]],[$Win2[0],$Win2[1]],[$Win3[0],$Win3[1]],[$Win4[0],$Win4[1]],[$Win5[0],$Win5[1]],[$Win6[0],$Win6[1]],[$Win7[0],$Win7[1]],[$Win8[0],$Win8[1]],[$Win9[0],$Win9[1]],[$Win10[0],$Win10[1]]]
    ElseIf $WindowCount = 11 Then
    Local $WindowArray[$WindowCount][2] = [[$Win1[0],$Win1[1]],[$Win2[0],$Win2[1]],[$Win3[0],$Win3[1]],[$Win4[0],$Win4[1]],[$Win5[0],$Win5[1]],[$Win6[0],$Win6[1]],[$Win7[0],$Win7[1]],[$Win8[0],$Win8[1]],[$Win9[0],$Win9[1]],[$Win10[0],$Win10[1]],[$Win11[0],$Win11[1]]]
    ElseIf $WindowCount = 12 Then
    Local $WindowArray[$WindowCount][2] = [[$Win1[0],$Win1[1]],[$Win2[0],$Win2[1]],[$Win3[0],$Win3[1]],[$Win4[0],$Win4[1]],[$Win5[0],$Win5[1]],[$Win6[0],$Win6[1]],[$Win7[0],$Win7[1]],[$Win8[0],$Win8[1]],[$Win9[0],$Win9[1]],[$Win10[0],$Win10[1]],[$Win11[0],$Win11[1]],[$Win12[0],$Win12[1]]]
    ElseIf $WindowCount = 13 Then
    Local $WindowArray[$WindowCount][2] = [[$Win1[0],$Win1[1]],[$Win2[0],$Win2[1]],[$Win3[0],$Win3[1]],[$Win4[0],$Win4[1]],[$Win5[0],$Win5[1]],[$Win6[0],$Win6[1]],[$Win7[0],$Win7[1]],[$Win8[0],$Win8[1]],[$Win9[0],$Win9[1]],[$Win10[0],$Win10[1]],[$Win11[0],$Win11[1]],[$Win12[0],$Win12[1]],[$Win13[0],$Win13[1]]]
    ElseIf $WindowCount = 14 Then
    Local $WindowArray[$WindowCount][2] = [[$Win1[0],$Win1[1]],[$Win2[0],$Win2[1]],[$Win3[0],$Win3[1]],[$Win4[0],$Win4[1]],[$Win5[0],$Win5[1]],[$Win6[0],$Win6[1]],[$Win7[0],$Win7[1]],[$Win8[0],$Win8[1]],[$Win9[0],$Win9[1]],[$Win10[0],$Win10[1]],[$Win11[0],$Win11[1]],[$Win12[0],$Win12[1]],[$Win13[0],$Win13[1]],[$Win14[0],$Win14[1]]]
    ElseIf $WindowCount = 15 Then
    Local $WindowArray[$WindowCount][2] = [[$Win1[0],$Win1[1]],[$Win2[0],$Win2[1]],[$Win3[0],$Win3[1]],[$Win4[0],$Win4[1]],[$Win5[0],$Win5[1]],[$Win6[0],$Win6[1]],[$Win7[0],$Win7[1]],[$Win8[0],$Win8[1]],[$Win9[0],$Win9[1]],[$Win10[0],$Win10[1]],[$Win11[0],$Win11[1]],[$Win12[0],$Win12[1]],[$Win13[0],$Win13[1]],[$Win14[0],$Win14[1]],[$Win15[0],$Win15[1]]]
    ElseIf $WindowCount = 16 Then
    Local $WindowArray[$WindowCount][2] = [[$Win1[0],$Win1[1]],[$Win2[0],$Win2[1]],[$Win3[0],$Win3[1]],[$Win4[0],$Win4[1]],[$Win5[0],$Win5[1]],[$Win6[0],$Win6[1]],[$Win7[0],$Win7[1]],[$Win8[0],$Win8[1]],[$Win9[0],$Win9[1]],[$Win10[0],$Win10[1]],[$Win11[0],$Win11[1]],[$Win12[0],$Win12[1]],[$Win13[0],$Win13[1]],[$Win14[0],$Win14[1]],[$Win15[0],$Win15[1]],[$Win16[0],$Win16[1]]]
    ElseIf $WindowCount = 17 Then
    Local $WindowArray[$WindowCount][2] = [[$Win1[0],$Win1[1]],[$Win2[0],$Win2[1]],[$Win3[0],$Win3[1]],[$Win4[0],$Win4[1]],[$Win5[0],$Win5[1]],[$Win6[0],$Win6[1]],[$Win7[0],$Win7[1]],[$Win8[0],$Win8[1]],[$Win9[0],$Win9[1]],[$Win10[0],$Win10[1]],[$Win11[0],$Win11[1]],[$Win12[0],$Win12[1]],[$Win13[0],$Win13[1]],[$Win14[0],$Win14[1]],[$Win15[0],$Win15[1]],[$Win16[0],$Win16[1]],[$Win17[0],$Win17[1]]]
    ElseIf $WindowCount = 18 Then
    Local $WindowArray[$WindowCount][2] = [[$Win1[0],$Win1[1]],[$Win2[0],$Win2[1]],[$Win3[0],$Win3[1]],[$Win4[0],$Win4[1]],[$Win5[0],$Win5[1]],[$Win6[0],$Win6[1]],[$Win7[0],$Win7[1]],[$Win8[0],$Win8[1]],[$Win9[0],$Win9[1]],[$Win10[0],$Win10[1]],[$Win11[0],$Win11[1]],[$Win12[0],$Win12[1]],[$Win13[0],$Win13[1]],[$Win14[0],$Win14[1]],[$Win15[0],$Win15[1]],[$Win16[0],$Win16[1]],[$Win17[0],$Win17[1]],[$Win18[0],$Win18[1]]]
    ElseIf $WindowCount = 19 Then
    Local $WindowArray[$WindowCount][2] = [[$Win1[0],$Win1[1]],[$Win2[0],$Win2[1]],[$Win3[0],$Win3[1]],[$Win4[0],$Win4[1]],[$Win5[0],$Win5[1]],[$Win6[0],$Win6[1]],[$Win7[0],$Win7[1]],[$Win8[0],$Win8[1]],[$Win9[0],$Win9[1]],[$Win10[0],$Win10[1]],[$Win11[0],$Win11[1]],[$Win12[0],$Win12[1]],[$Win13[0],$Win13[1]],[$Win14[0],$Win14[1]],[$Win15[0],$Win15[1]],[$Win16[0],$Win16[1]],[$Win17[0],$Win17[1]],[$Win18[0],$Win18[1]],[$Win19[0],$Win19[1]]]
    EndIf

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

    For $i = 0 To $WindowCount -1
    MsgBox(0, "", "Position of SubFolder " & $i + 1 & "in Folder X:" & $WindowArray[$i][0] & "and Y" & $WindowArray[$i][1])
    MouseMove($WindowArray[$i][0],$WindowArray[$i][1])
    Next

    [/autoit]