[FRAGE] Autoit Pixelsearch

08/07/2009 16:26 moped#1
hey

ich bin nun seit ner woche daran ein bisschen mit autoit rumzuspielen. Die tutorials ect sind sehr hilfreich und habe mir die meisten bzw das was ich brauche und gerade auch benutze durchgelesen.

Nun bin ich an einem Punkt angekommen in dem ich nicht mehr weiterweis bzw wo der fehler liegt.

Quote:
Do
$inicheck1 = 0
$inicheck1 = PixelSearch ($x1, $y1, $x2, $y2, $farbe99)
If IsArray($inicheck1) = 1 Then
Sleep (120000)
MouseMove($inicheck1[0], $inicheck1[1])
Sleep (100)
MouseClick ("left", 930, 520)
EndIf
Until $inicheck1 = 0xFFE76A
Ich versuche einen bereich nach der Farbe 0xFFE76A abzusuchen.
während er dies macht soll er bei 930, 520 klicken. Sobald er die Farbe gefunden hat 2 minuten warten, und dann in dem bereich den er absucht links klicken.

So momentan sucht er den breich ab, wenn ich manuel in den breich fahre geht er wieder zur position und klickt einmal.

Wenn mir jemand helfen könnte wäre ihr sehr dankbar.
08/07/2009 18:07 | Moep |#2
Guck dir mal den Beispielcode bei "PixelSearch" aus der Hilfe an:

Code:
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000 )
If Not @error Then
    MsgBox(0, "X und Y lauten:", $coord[0] & "," & $coord[1])
EndIf
Was du da mit "IsArray()" bezwecken willst, kann ich grad nicht nachvollziehen...
08/07/2009 21:39 Shadow992#3
Quote:
Originally Posted by | Moep | View Post
Guck dir mal den Beispielcode bei "PixelSearch" aus der Hilfe an:

Code:
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000 )
If Not @error Then
    MsgBox(0, "X und Y lauten:", $coord[0] & "," & $coord[1])
EndIf
Was du da mit "IsArray()" bezwecken willst, kann ich grad nicht nachvollziehen...
IsArray funktioniert genausogut ...

Leider kann ich den Thread ersteller nicht helfen ,da alles sehr kurz und kanpp beschrieben ist ... was er jetzt genau wissen will , weiß ich nicht ...
08/07/2009 21:59 moped#4
ich möchte das mit pixelsearch ein bereich untersucht wird indem irgendwann ein knopf auftauchen wird (solange soll er aber bei 930, 520 linksklicks durchführen). Wenn dies eintritt soll er 2 minuten warten und den drücken den rest bekomme ich denke ich alleine hin bzw will ich auch alleine hinbiegen ^^

ich hoffe das ist genau genug beschrieben.

mfg
08/07/2009 22:10 kknb#5
pseudocode

Code:
Do
	klick(irgendwohin)
	$bla = PixelSearch(bla bla)
	sleep(50)
Until not @error
sleep(2minuten)
klick(auf bla)

;fertig!
08/07/2009 22:24 moped#6
funktioniert nicht.

Quote:
Do
MouseClick ("left", 930, 520)
$bla = PixelSearch($x1, $y1, $x2, $y2, $farbe99)
Sleep(50)
Until not @error
Sleep($variable3)
MouseClick ("left", $bla)
er fährt zwar dann auf die klick position, klickt nur einmal (sollte eigentlich unendlich oft klicken solange der button nochnicht da ist) und wenn der knopf erscheint passiert auch nichts.
08/07/2009 22:25 kknb#7
dann eben so.

Code:
go()
func go()
Do
	MouseClick("left", 1136, 137)
	$bla = PixelSearch(1136, 137,1386, 251, 0xD6DCDE)
	sleep(50)
Until IsArray($bla) and not @error
MsgBox(0,"","fertig")
endfunc
;fertig!
08/07/2009 22:44 moped#8
okay geht leider immernochnicht, er klickt jetzt imemr schön da wo er soll doch er erkennt den button nicht. Die Farbe ist richtig die ich eingetragen habe sowie die koordinaten, habe ich nochmal überprüft.

//EDIT die maus muss aber nicht auf dem suchenden punkt stehen oder?
08/07/2009 23:04 kknb#9
nein muss sie nicht, und das script funktioniert so 100%ig, dann musst du was falsch angegeben haben, entweder farbe oder evtl pixelcoordmode.
08/07/2009 23:28 moped#10
jop funktioniert aber nicht mit meienr farbe sehr komisch, habe nun nen andern bereich ausgesucht aber da findert er es zu früh keine ahnung ^^ ich muss einfach mal bissel testen was am geeignetsten ist

mfg und danke
08/08/2009 00:03 Xereon#11
Quote:
Originally Posted by moped View Post
jop funktioniert aber nicht mit meienr farbe sehr komisch, habe nun nen andern bereich ausgesucht aber da findert er es zu früh keine ahnung ^^ ich muss einfach mal bissel testen was am geeignetsten ist

mfg und danke
womit hast du die Farbe ausgesucht?
Wenn du es mit dem AuInfo.exe Tool gemacht hast muss du gucken das auch die PixelChoord Options richtig sind.
08/08/2009 11:29 moped#12
AutoIt Window Info habe ich benutzt, sollte ich da noch einstellungen vornehmen?
08/08/2009 13:24 Xereon#13
Aufjedenfall.
Die Farben mögen zwar richtig seien, aber die Koordinaten nicht.
Geh mal ins Au3Info Tool und geh mal in die Menüsparte:
Code:
Options/CoordMode
und wähle dort
Code:
Screen
.
Dann musst du dir nochmal deine Farben raussuchen und fertig.
Wenn du erfahrener bist ganz du es auch mit relatien Koordinaten versuchen(zum aktuellen Fenster).
Dafür schreibst du am Anfang deines Scriptes folgendes:
Code:
Opt("PixelCoordMode",0)
Beim Infotool musst du dann:
Code:
Window
wählen.

Hoffe ich konnte helfen ;)