Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

PixelSearch(Anleitung)


  • Please log in to reply
29 replies to this topic
Marshall666
  • Members
  • 45 posts
  • Last active: May 16 2013 04:03 PM
  • Joined: 09 Mar 2013

Hallo zusammen!

Da ich in einem BrowserSpiel ein Fenster was in unregelmäßigen Abständen auftaucht mit [x] weg klicken möchte muss ich wissen wie PixelSearch funktioniert also

entschloss ich mich unter der deutschen Hilfeseite unter dem Thema was zu finden:


 

X1|Y1:

Die neuen Koordinaten X und Y der unteren rechten Ecke des rechteckigen Suchbereichs, die Ausdrücke sein können. Die Koordinaten beziehen sich auf das aktive Fenster, sofern das nicht mit CoordMode geändert wurde.

 

^^ ?! 0.o

Ich versteh Bahnhof! Ich muss dazu sagen das ich noch sehr weit am Anfang bin und dies meine erste "Programmiersprache" ist die ich versuch zu erlernen! ;(

 

Ich vermute mal X2|Y2 steht für die Koordinaten in dem das Fenster erscheint wo die Farbabfrage geschiet!?

Ach noch was: Ein Gui habe ich schon fertig da muss ich nurnoch den button "Bot" einbauen was kein Thema ist denn soweit bin ich schon! wink.png

Dieser Button löst PixelSearch der sich in einer Schliefe befindet aus! ..

 

Das Thema PixelSearch scheint mir sehr interessant zu sein!

Darum bitte ich euch um hilfe!!   =)

 

So würde ich es einbauen:

Button4:
   
Loop
{
PixelSearch, Px, Py,0 ,0 ,1203 , 418, 0xFF8662, 3, Fast

if ErrorLevel = 0

Mousemove, %px%,%py%

MouseClick, Left

Return
}

 

 

Lg



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Der Befehl sucht einen Bereich, ein rechteckiges Feld ab.

Die ersten Punkte X1|Y1 geben die erste Ecke des Rechtecks an in dem gesucht werden soll.

X2|Y2 die andere Ecke.


Visit the new forum ahkscript.org.

http://ahkscript.org


Marshall666
  • Members
  • 45 posts
  • Last active: May 16 2013 04:03 PM
  • Joined: 09 Mar 2013

Hmm... jetzt bin ich verwirrt ich dachte bei x|y2 werden die exakten Koordinaten eingetragen in dem der Farbcode sich in unregälmäßigen abständen ändert?! 0.o

Button5:
   
Loop
{
PixelSearch, Px, Py,0 ,0 ,1203 , 418,  0xFF8662, 0, Fast


Mousemove, %px%,%py%

MouseClick, Left

Return
}

Wie muss ich denn die Koordianten X1203 Y418 eintragen wenn sich genau dort der Farbcode ändert? Wenn X und Y in zwei Spalten geteilt wird dann muss man alles durch 2 nehmen oder wie?

Ich bin irgendwie verwirrt! :p



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Punkt1(X1|Y1)

|                     |

|   .                 |

|der gesuchte|

|Punkt            |

|                     |

                      Punkt2(X2|Y2)


Visit the new forum ahkscript.org.

http://ahkscript.org


Marshall666
  • Members
  • 45 posts
  • Last active: May 16 2013 04:03 PM
  • Joined: 09 Mar 2013

Kannst Du mir mal das ganze genauer erklären bitte?



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Der gesuchte Punkt muss sich i dem Rechteck welche durch die zwei Punkte angegeben wird befiden:

Gesuchter Punkt(1203|418)

Ecke1(<1203|<418)

Ecke2(>1203|>418)

 

 

 

Der Pixelsearch Befehl sucht einen Bereich ab wie ich bereits gesagt habe.

Wenn dir der genaue Punkt bekannt ist würde ich eher PixelGetColor benutzen

 

color:=0xFFFFFF
Loop
{
PixelGetColor,output,PixelX,PixelY
If (output=color)
   Msgbox
sleep,100
}

Der Code bedeutet, dass wenn die Farbe von Pixel(PixelX|PixelY) der Farbe color, also 0xFFFFFF (Weiss) ist, dann erscheint eine Msgbox


Visit the new forum ahkscript.org.

http://ahkscript.org


Marshall666
  • Members
  • 45 posts
  • Last active: May 16 2013 04:03 PM
  • Joined: 09 Mar 2013

Ahh.. also ist PixelSearch nur wenn man nicht genau weiß wo genau die Farbe sich ändert? Darum sind also zwei x|y Angaben! ;)

 

Ok, dann brauch ich wohl PixelGetColor:

 

Button5:
color:=0xFF8662
Loop

 {   
       sleep, 1000
  If stop = 1
      Break
  ToolTip, %A_Index%
  Sleep, 1000
 
PixelGetColor,output,1203,418 Slow
If (output=color)

MouseClick, Left

sleep 1000

}
Return

^^Ich bekomme nur ein Tooltip der ohne das sich die Maus bewegt und klickt hochzählt! ;(



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

es kann sein das deine Farbe in RGB gespeichert ist während der Befehl BGR ausgibt.

Welche sollte es denn sein?

 

Hier ein Code der bei meinem schwarzen Desktophintergrund gut funktioniert.

color:=0x000000
Loop
{
sleep, 1000
ToolTip, %A_Index%
PixelGetColor,output,500,500,RGB ;RGB anstatt BRG
If (output>(color-0x050505)&&output<(color+0x050505)) ;einen Toleranzbereich festlegen (die Farbe kann abweichen).
MouseClick,left, 500, 500 
}
Return

Visit the new forum ahkscript.org.

http://ahkscript.org


Marshall666
  • Members
  • 45 posts
  • Last active: May 16 2013 04:03 PM
  • Joined: 09 Mar 2013

Ja ich habe mit einem Script die RGB Farbe des [x] Schließ Buttons heraus gefunden. Es funktioniert nicht obwohl ich dazu die exakte Koordinaten eingegeben habe!

Also Brg sagst Du? Wie finde ich den die brg Farbe des [x] Buttons im BrowserGame?



Alibaba
  • Members
  • 435 posts
  • Last active: Nov 19 2014 04:21 PM
  • Joined: 01 Nov 2012

RGB: 0xFF8662 ---> BGR: 0x6286FF

 

vermute ich mal...


Find the recent autohotkey version here: ahkscript.org


Marshall666
  • Members
  • 45 posts
  • Last active: May 16 2013 04:03 PM
  • Joined: 09 Mar 2013

0.o Hast Du ein Umrechner? Oder ist das echt jetzt eine Vermutung? o.0 tongue.png

 

Button5: 
color:=0x6286FF
Loop 
{
 sleep, 1000
 If stop = 1 Break
 ToolTip, %A_Index% 
Sleep, 1000

 PixelGetColor,color,1203,418 Slow
 If (color=0x6286FF) 
MouseClick, Left, 1203,418
 sleep 1000
 } 
Return

 

 

 

^^Damit hatte ich wenigstens noch ein TeilErfolg und zwar hat sich der Mauszeiger bewegt und auch geklickt! Jedoch irgendwo ganz am Rand bei 0x000000

 

 

 

EDIT:

Ok, vielen Dank QaMarath dein Farbcode in bgr funktioniert und klickt auch NUR auf den [x]Button, nirgenswo anders allerdings bewegt er die Maus nicht in diese Position ich muss die Maus manuell zum Ziel steuern! Genauer gesagt bewegt er die Maus, aber erst nachdem ich mit dem Cursor schon aufm [x]Button (untere Hälfte) drauf bin ;(

 

Button5:
color:=0x5D81ff
Loop

{    
Sleep, 1000
  If stop = 1
      Break
  ToolTip, %A_Index%
 Sleep, 1000


PixelGetColor,color,1205,419 slow alt

If (color = 0x5D81ff)

Mousemove, 1204,418   
MouseClick, Left, 1204,418

sleep 1000
}
Return

Mit MouseMove bewegt er jetzt endlich die Maus.. aber er soll nur dann auf die Position 1204,418 springen wenn das Fenster erscheint! -.-

Hmm.. mit ErrorLevel hab ichs aber nicht hinbekommen! -.-

Ich brauche eure Hilfeeee  ;(

Echt komisch wenn ich aber unter "If (Color = 0x....)" Continue eingebe dann klickt er nicht mehr sobald der Cursor auf der Position ist!!! *ahhhhh



Alibaba
  • Members
  • 435 posts
  • Last active: Nov 19 2014 04:21 PM
  • Joined: 01 Nov 2012
Klammer nicht vergessen, wenn du mehrere befehle von einer Bedingung abhängig machst:
If(Bedingung)
{
Befehle
}

Find the recent autohotkey version here: ahkscript.org


nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Nie liest sich jemand die Kommentare durch die ich an meine Skripte schreibe:

PixelGetColor,output,500,500,RGB   ;RGB anstatt BRG

Hast du einen umrechner ?

Ja hat er seinen Kopf wink.png

 

      B   | G  | R

 0x 5D | 81 | ff

      R   | G  | B

 0x   ff  | 81 | 5D


Visit the new forum ahkscript.org.

http://ahkscript.org


Marshall666
  • Members
  • 45 posts
  • Last active: May 16 2013 04:03 PM
  • Joined: 09 Mar 2013

mnik ich habe doch schon ein RGB Code rein geschrieben am Anfang und RGB auch davor geschrieben aber das hat nichts gebracht, er hat die Farbe nicht erkannt! sad.png

RGB: 0xFF8662 ---> BGR: 0x6286FF

vermute ich mal...


^^ Ja die ersten beiden, also die roten (ff) hat er nach Rechts verschoben aber die anderen Zahlen? Wie hat er diese verändert? Das verstehe ich nicht..


@QaMarath: Die Klammern?
Da komm ich aber auch nicht weiter mit:

Button5:
color:=0x5D81ff
Loop
{
sleep, 1000
If stop = 1
Break
ToolTip, %A_Index%
Sleep, 1000
 
PixelGetColor,color,1205,419 slow alt
If (color = 0x5D81ff)
{
MouseClick, Left, 1204,418
sleep 1000
}
}
Return


Alibaba
  • Members
  • 435 posts
  • Last active: Nov 19 2014 04:21 PM
  • Joined: 01 Nov 2012

Ich gebs zu, ich kann zaubern... wink.png

 

So funktionierts, wie du siehst ändern sich die Zahlen nicht, nur ihre Anordnung:

RGB_BGR.jpg

 

Zum eigentlichen Problem:

Wie wärs denn wenn du MouseMove nicht rauskickst:

PixelGetColor,color,1205,419 slow alt

If (color = "0x5D81ff")
{
      Mousemove, 1204,418         ;Ich bin wichtig!
      MouseClick, Left, 1204,418
}

Find the recent autohotkey version here: ahkscript.org