Syntax?

02/05/2011 21:52 programm2008#1
Hey Leute,
gibt es in diesem Programm, rein syntaktisch gesehen irgendwelche Fehler, weil Imagesearch, keins der Bilder identifizieren kann?

Dim $myPics[15]
$myPics [0] = 14
$myPics [1] = '1.bmp'
$myPics [2] = '2.bmp'
$myPics [3] = '3.bmp'
$myPics [4] = '4.bmp'
$myPics [5] = '5.bmp'
$myPics [6] = '6.bmp'
$myPics [7] = '7.bmp'
$myPics [8] = '8.bmp'
$myPics [9] = '9.bmp'
$myPics [10] = '10.bmp'
$myPics [11] = '11.bmp'
$myPics [12] = '12.bmp'
$myPics [13] = '13.bmp'
$myPics [14] = '14.bmp'



$res = _WaitForImagesSearch($myPics,0,1,$x,$y,100)
Switch $res
Case 0
MsgBox(0,'Los','Los ist nicht vorhanden')
Exit
Case 1
MouseClick("left",$x,$y,1,0)
Case 2
MouseClick("left",$x,$y,1,0)
Case 3
MouseClick("left",$x,$y,1,0)
Case 4
MouseClick("left",$x,$y,1,0)
Case 5
MouseClick("left",$x,$y,1,0)
Case 6
MouseClick("left",$x,$y,1,0)
Case 7
MouseClick("left",$x,$y,1,0)
Case 8
MouseClick("left",$x,$y,1,0)
Case 9
MouseClick("left",$x,$y,1,0)
Case 10
MouseClick("left",$x,$y,1,0)
Case 11
MouseClick("left",840,550,1,0)
Case 12
MouseClick("left",$x,$y,1,0)
Case 13
MouseClick("left",$x,$y,1,0)
Case 14
MouseClick("left",$x,$y,1,0)
Case 15
MouseClick("left",$x,$y,1,0)
Case 16
MouseClick("left",$x,$y,1,0)
Case 17
MouseClick("left",$x,$y,1,0)
EndSwitch
02/05/2011 22:06 KDeluxe#2
Unnützer Thread, das hättest du auch in deinem anderen Thread fragen können. Falls du nicht weißt, welchen ich meine: [Only registered and activated users can see links. Click Here To Register...]

Ich hab mir die Funktion doch mal angeguckt, der Fehler liegt an deinem 2. Parameter. Dieser ist auf 0 gesetzt, die Funktion suchst also erst gar nicht nach deinem Bild. Setze ihn auf 1 oder höher.
02/05/2011 22:37 programm2008#3
Erstmal Danke. Aber du meintest doch ich soll keine alten Threads pushen.
02/06/2011 00:03 KDeluxe#4
Schau mal in den Regeln, das mit den "Pushen" ist mit einem "Double Post" in einer Regeln zusammengefasst, deswegen habe ich es auch extra FETT markiert.
02/09/2011 10:02 programm2008#5
Ich habe das jetzt so gemacht aber trotzdem funkt es nicht wieso? Kannst du mein Code bitte kopieren und dann die richtige version reinstellen plz ?? :handsdown:

Dim $myPics[15]
$myPics [1] = '1.bmp'
$myPics [2] = '2.bmp'
$myPics [3] = '3.bmp'
$myPics [4] = '4.bmp'
$myPics [5] = '5.bmp'
$myPics [6] = '6.bmp'
$myPics [7] = '7.bmp'
$myPics [8] = '8.bmp'
$myPics [9] = '9.bmp'
$myPics [10] = '10.bmp'
$myPics [11] = '11.bmp'
$myPics [12] = '12.bmp'
$myPics [13] = '13.bmp'
$myPics [14] = '14.bmp'




$res = _WaitForImagesSearch($myPics,0,1,$x,$y,100)
Switch $res
Case 1
MsgBox(0,'Los','Los ist nicht vorhanden')
Case 2
MouseClick("left",$x,$y,1,0)
Case 3
MouseClick("left",$x,$y,1,0)
Case 4
MouseClick("left",$x,$y,1,0)
Case 5
MouseClick("left",$x,$y,1,0)
Case 6
MouseClick("left",$x,$y,1,0)
Case 7
MouseClick("left",$x,$y,1,0)
Case 8
MouseClick("left",$x,$y,1,0)
Case 9
MouseClick("left",$x,$y,1,0)
Case 10
MouseClick("left",$x,$y,1,0)
Case 11
MouseClick("left",$x,$y,1,0)
Case 12
MouseClick("left",840,550,1,0)
Case 13
MouseClick("left",$x,$y,1,0)
Case 14
MouseClick("left",$x,$y,1,0)
EndSwitch
02/09/2011 10:30 -AmA-#6
weis nicht ob das automatisch passiert oder nicht, aber in Dim $myPics[0] sollte die Anzahl der Images stehen...
Die Fehlermeldung würde schon einiges mehr aussagen.

Auserdem ist dein Code recht sinnlos da switch case zusammengefasst und die Auflistung der Bilder mit ner for-Schleife gemacht werden kann....
02/09/2011 12:16 programm2008#7
Quote:
Originally Posted by -AmA- View Post
weis nicht ob das automatisch passiert oder nicht, aber in Dim $myPics[0] sollte die Anzahl der Images stehen...
Die Fehlermeldung würde schon einiges mehr aussagen.

Auserdem ist dein Code recht sinnlos da switch case zusammengefasst und die Auflistung der Bilder mit ner for-Schleife gemacht werden kann....
Könntest du die richtige/effiziente Art hinschreiben ?
02/09/2011 13:56 KDeluxe#8
PHP Code:
$max 14 ;Anzahl der Bilder
Dim $myPics
[$max 1]
For 
$i 0 To $max
    
If $i == 0 Then
        $myPics
[$i] = $max
    
Else
        
$myPics[$i] = $i ".bmp"
    
EndIf
Next

Dim $x
$y
$res 
_WaitForImagesSearch($myPics$max1$x$y100) ;maximal x Sekunden für x Bilder
If $res 0 Then
    
If $res == 1 Then
        MsgBox
(0,'Los','Los ist nicht vorhanden')
    ElseIf 
$res == 12 Then
        MouseClick
("left"84055010)
    Else
        
MouseClick("left"$x$y10)
    EndIf
EndIf 
02/09/2011 13:58 -AmA-#9
nicht das du mich falsch verstehst... richtig ist es schon aber es gibt so viel zu schreiben :D

Das ist leichter:

Bilder:
PHP Code:
#include <Array.au3>

$Anzahl_Bilder 100

Dim $myPics
[$Anzahl_Bilder 1]
$myPics[0] = $Anzahl_Bilder

For $i 1 to $Anzahl_Bilder
    $myPics
[$i] = $i '.bmp'
Next

_ArrayDisplay
($myPics
switch case:
PHP Code:
Switch $res
Case 0
    MsgBox
(0,'Los','Los ist nicht vorhanden')
Case 
1 To 11
    MouseClick
("left",$x,$y,1,0)
Case 
12
    MouseClick
("left",840,550,1,0)
Case 
13 To 14
    MouseClick
("left",$x,$y,1,0)
EndSwitch 
oder

PHP Code:
Switch $res
Case 0
    MsgBox
(0,'Los','Los ist nicht vorhanden')
Case 
12
    MouseClick
("left",840,550,1,0)
Case Else
    
MouseClick("left",$x,$y,1,0)
EndSwitch 
btw:
Die UDF funzt bei mir nicht :D

Edit:
Da war jemand schneller:D
Damit du aber die UDF verwenden kanst, muss in $myPics[0] die Anzahl der Bilder stehen...
:p nix gewesen :D:D
02/09/2011 14:03 KDeluxe#10
Du musst die dazugehörige "ImageSearch.dll" (soweit ich weiß) im selben Ordner haben.
02/09/2011 14:06 -AmA-#11
Quote:
Originally Posted by KillerDeluxe View Post
Du musst die dazugehörige "ImageSearch.dll" (soweit ich weiß) im selben Ordner haben.
jop ich weis...
Weist du ich bin sowiso Autohotkey User...
Gib nur ab und zu Autoit Support da das hier mehr verbereitet ist....
02/09/2011 14:15 KDeluxe#12
Ich benutze eigentlich keins von beiden. Das mit der Anzahl in $myPics[0] habe ich ja in der For-Schleife mit der If-Abfrage gemacht, ist vielleicht etwas umständlich.
02/09/2011 16:24 -AmA-#13
Hab ich übersehen :(
02/09/2011 16:43 programm2008#14
Quote:
Originally Posted by -AmA- View Post
nicht das du mich falsch verstehst... richtig ist es schon aber es gibt so viel zu schreiben :D

Das ist leichter:

Bilder:
PHP Code:
#include <Array.au3>

$Anzahl_Bilder 100

Dim $myPics
[$Anzahl_Bilder 1]
$myPics[0] = $Anzahl_Bilder

For $i 1 to $Anzahl_Bilder
    $myPics
[$i] = $i '.bmp'
Next

_ArrayDisplay
($myPics
switch case:
PHP Code:
Switch $res
Case 0
    MsgBox
(0,'Los','Los ist nicht vorhanden')
Case 
1 To 11
    MouseClick
("left",$x,$y,1,0)
Case 
12
    MouseClick
("left",840,550,1,0)
Case 
13 To 14
    MouseClick
("left",$x,$y,1,0)
EndSwitch 
oder

PHP Code:
Switch $res
Case 0
    MsgBox
(0,'Los','Los ist nicht vorhanden')
Case 
12
    MouseClick
("left",840,550,1,0)
Case Else
    
MouseClick("left",$x,$y,1,0)
EndSwitch 
btw:
Die UDF funzt bei mir nicht :D

Edit:
Da war jemand schneller:D
Damit du aber die UDF verwenden kanst, muss in $myPics[0] die Anzahl der Bilder stehen...
:p nix gewesen :D:D
Hey ich hab dein Code übernommen aber jetzt kommt sowas:

[Only registered and activated users can see links. Click Here To Register...]

Das geht noch weiter bis hundert wieso kommt das???
02/09/2011 22:34 KDeluxe#15
Ohne Hintergedanken einfach nur kopiert...

Was denkst du, wofür "$Anzahl_Bilder = 100" wohl gut ist?