|
You last visited: Today at 16:46
Advertisement
Helfe->Pixelsearch&klick
Discussion on Helfe->Pixelsearch&klick within the AutoIt forum part of the Coders Den category.
06/23/2012, 19:29
|
#1
|
elite*gold: 0
Join Date: Aug 2008
Posts: 59
Received Thanks: 2
|
eignes Problem gelöst->Pixelsearch&klick
wie die meisten die hier wohl fragen, bin auch ich jemand der sich erst seit ein paar Stunden mit Autoit beschäftigt habt und daher etwas Hilfe benötige
Zur Erklärung:
ich bin gerade dabei ein mehr oder weniger brauchbares Script zu basteln welches bei einem Browserspiel einiges für mich AFK erledigen soll. Beim testen wurde das was gewünscht wurde auch soweit getan.
Mein Problem entsteht durch ein aufploppendes Fenster welches ich mit Pixelsearch wegklicken wollte. Nur leider scheint Autoit dies nicht zu machen 
vielleicht mag mir jemand etwas helfen
HTML Code:
Sleep (10000)
$timer = timerinit()
while timerdiff($timer)<4000000
MouseClick ("left", 748, 476)
sleep (4000)
MouseClick ("left", 885, 545)
sleep (4000)
MouseClick ("left", 625,546)
sleep (4000)
MouseClick ("left", 740,617)
sleep (4000)
MouseClick ("left", 460,621)
sleep (4000)
MouseClick ("left", 584,690)
sleep (8000)
MouseClick ("left", 748, 476)
sleep (4000)
MouseClick ("left", 319,414)
sleep (4000)
MouseClick ("left", 885, 545)
sleep (4000)
MouseClick ("left", 319,414)
sleep (4000)
MouseClick ("left", 625,546)
sleep (4000)
MouseClick ("left", 319,414)
sleep (4000)
MouseClick ("left", 740,617)
sleep (4000)
MouseClick ("left", 319,414)
sleep (4000)
MouseClick ("left", 460,621)
sleep (4000)
MouseClick ("left", 319,414)
sleep (4000)
MouseClick ("left", 584,690)
sleep (4000)
MouseClick ("left", 319,414)
sleep (373000)
WEnd
--
--
Sleep (10000)
while 1
$variable = PixelSearch(808, 354, 822, 369, 0xD4D4D4)
If IsArray($variable) = True Then
MouseMove($variable [0], $variable [1], 1)
sleep(500)
MouseClick($variable)
Sleep(500)
EndIf
WEnd
habe es selber gelöst, indem ich mir das was ich wollte als zweites Script gebastelt habe. dennoch danke
|
|
|
06/23/2012, 19:50
|
#2
|
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
|
Was meinst du mit "aufploppendes Fenster"? Fenster kannst du mit WinClose() schließen, alternativ könntest du mit ProcessClose() den Prozess des Fensters beenden.
|
|
|
06/23/2012, 19:55
|
#3
|
elite*gold: 0
Join Date: Apr 2012
Posts: 319
Received Thanks: 54
|
Quote:
Originally Posted by KDeluxe
Was meinst du mit "aufploppendes Fenster"? Fenster kannst du mit WinClose() schließen, alternativ könntest du mit ProcessClose() den Prozess des Fensters beenden.
|
Ich glaube ProcessClose(), da es sich sicher um ein Online-Browsergame Handelt. Und Pixelsearch ist da oft nicht nötig, du kannst auch die Koordinaten Fest angeben, Aber nur wenn das fenster immer an gleicher stelle erscheint... aber da es auf dem Aufploppendem Fenster sicher die Farbe von dem Pixel den du suchst öfters im spiel gibt, sehe ich keine Vernünftigere Antwort
|
|
|
06/23/2012, 20:14
|
#4
|
elite*gold: 0
Join Date: Aug 2008
Posts: 59
Received Thanks: 2
|
Quote:
Originally Posted by KDeluxe
Was meinst du mit "aufploppendes Fenster"? Fenster kannst du mit WinClose() schließen, alternativ könntest du mit ProcessClose() den Prozess des Fensters beenden.
|
wie geschrieben ist es ein Browserspiel und jenes Auftauchende Ingamefenster verdeckt die zu klickenden Felder.
Das Pixelsearch wurde gewählt, weil ich mir dachte "wenn das Programm an Punkt X die Farbe grau sieht wird das graue Schließfeld gedrückt". Nur leider passiert nichts. ich habe immerhin die Koordinaten+Farbcode eingetragen. darum dachte ich mir hat dieses Script einen Fehler den ein Newbie nicht sieht.
|
|
|
06/23/2012, 22:19
|
#5
|
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
|
Deshalb habe ich gefragt, was du damit meinst. Aus deinem Beitrag kann man nicht entnehmen, dass es sich dabei um ein Fenster des Spiels handelt, oder nicht.
Ich vermute mal, dass es immer das selbe Fenster ist und dementsprechend der Button zum schließen immer an der selben Stelle ist. Wenn das der Fall ist kannst du mit PixelGetColor() überprüfen, ob der Button zum schließen des Fensters existiert.
Ansonsten einfach mal überprüfen ob die Farbe und der Bereich passt.
|
|
|
06/23/2012, 23:59
|
#6
|
elite*gold: 0
Join Date: Apr 2012
Posts: 319
Received Thanks: 54
|
Quote:
Originally Posted by KDeluxe
Deshalb habe ich gefragt, was du damit meinst. Aus deinem Beitrag kann man nicht entnehmen, dass es sich dabei um ein Fenster des Spiels handelt, oder nicht.
Ich vermute mal, dass es immer das selbe Fenster ist und dementsprechend der Button zum schließen immer an der selben Stelle ist. Wenn das der Fall ist kannst du mit PixelGetColor() überprüfen, ob der Button zum schließen des Fensters existiert.
Ansonsten einfach mal überprüfen ob die Farbe und der Bereich passt.
|
das geht ja "Technisch", aber Praktisch nicht, weil es die Graue farbe sicher öfters im spiel gibt und dadurch nciht nur darauf drückt.
|
|
|
06/24/2012, 01:33
|
#7
|
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
|
Das geht sowohl theoretisch/technisch als auch praktisch, deine Erklärung ist für PixelGetColor() nicht zutreffend.
Naja, der TE hat ja schon selbst eine Lösung gefunden.
|
|
|
All times are GMT +1. The time now is 16:47.
|
|