[AutoIt] PixelSearch Tut

06/19/2010 16:50 sido47#1
Hallo,
Mir ist aufgefallen dass die meisten nicht wissen wie man bestimmte Objekt mit Autoit sucht

Die "Grundgedanken":
Wenn ein Pixel mit einer bestimmten Eigenschaft(z:B Pixelfarbe) in einen betimmten Bereich auftaucht dann bewegt der Bot sich da hin :D

So gehts:
Quote:
$pixrand = PixelSearch(0,0,@DesktopWidth,@DesktopHeight,Farbe )
Hier erstmal die Variable mit der der Pixel festgelegt wird.
also "0,0,@DesktopWidth,@DesktopHeight" ist der Bereich der abgesucht werden soll,weil wir wollen das alles abgesucht wird --> Dektop-Width/Hight.
Da wo Farbe steht wird die Farbe des Pixels in Hex hingeschriebn (0xCCFFC0)
Diese bekommen wir mit dem AutoitInfo tool(Au3Info.exe) raus das sich im Autoit ordner befindet.

Benutzung des Autoit INf tools:
Den Tab Mouse auswählen
Dann auf das Finder Tool klicken und den Pixel (den Teil des Objekts das wir finden wollen)
Dann steht bei Color die Farbe in hex zahlen die kommt dann oben bei Farbe hin.


Quote:
if IsArray($pixrand) = True Then
MouseMove($pixrand[0],$pixrand[1],1)
Endif
Hier wird der Bildschirm nach der Farbe abgesucht und wenn sie gefunden wurde dann Bewegt sich die Maus zu diesem Punkt

Zu dem Befehl MouseMouve:
1. Parameter $pixrand[0] eine Koordinate
2. Parameter $pixrand[1] die andere Koordinate
3. Parameter Geschwindigkeit (1-100) wobei 1 das schnellste ist

Das Wars (einfach oder)

Hier nochmal ein Beispiel script mit Pause Funktion und Start/stopp funktion

Quote:
HotKeySet("{F1}","Start")
HotKeySet("{F2}","Pause")
HotKeySet("{F3}","Ende")
Global $funcs = false

Func Start()
$funcs = True
EndFunc

Func Pause()
$funcs = False
while $funcs = False
sleeP(500)
WEnd
EndFunc

Func Ende()
Exit
EndFunc

while 1
if $funcs = True then
$pixrand = PixelSearch(0,0,@DesktopWidth,@DesktopHeight,0xCCF FC0)
if IsArray($pixrand) = True Then
MouseMove($pixrand[0],$pixrand[1],1)
MouseClick("left")
EndIf
EndIf
WEnd
Wie ihr seht habe ich noch eine While schleife eingebaut denn das ist ein Bot
für Curveball ([Only registered and activated users can see links. Click Here To Register...]) und muss so sich auch nicht nur einmal dahin bewegen sonder daurnd und dann habe ich noch ein MouseClick eingebaut für den Aufschlag
06/19/2010 17:35 Shadow992#2
Quote:
Originally Posted by sido47 View Post
Hallo,
Mir ist aufgefallen dass die meisten nicht wissen wie man bestimmte Objekt mit Autoit sucht

Die "Grundgedanken":
Wenn ein Pixel mit einer bestimmten Eigenschaft(z:B Pixelfarbe) in einen betimmten Bereich auftaucht dann bewegt der Bot sich da hin :D

So gehts:


Hier erstmal die Variable mit der der Pixel festgelegt wird.
also "0,0,@DesktopWidth,@DesktopHeight" ist der Bereich der abgesucht werden soll,weil wir wollen das alles abgesucht wird --> Dektop-Width/Hight.
Da wo Farbe steht wird die Farbe des Pixels in Hex hingeschriebn (0xCCFFC0)
Diese bekommen wir mit dem AutoitInfo tool(Au3Info.exe) raus das sich im Autoit ordner befindet.

Benutzung des Autoit INf tools:
Den Tab Mouse auswählen
Dann auf das Finder Tool klicken und den Pixel (den Teil des Objekts das wir finden wollen)
Dann steht bei Color die Farbe in hex zahlen die kommt dann oben bei Farbe hin.




Hier wird der Bildschirm nach der Farbe abgesucht und wenn sie gefunden wurde dann Bewegt sich die Maus zu diesem Punkt

Zu dem Befehl MouseMouve:
1. Parameter $pixrand[0] eine Koordinate
2. Parameter $pixrand[1] die andere Koordinate
3. Parameter Geschwindigkeit (1-100) wobei 1 das schnellste ist

Das Wars (einfach oder)

Hier nochmal ein Beispiel script mit Pause Funktion und Start/stopp funktion



Wie ihr seht habe ich noch eine While schleife eingebaut denn das ist ein Bot
für Curveball ([Only registered and activated users can see links. Click Here To Register...]) und muss so sich auch nicht nur einmal dahin bewegen sonder daurnd und dann habe ich noch ein MouseClick eingebaut für den Aufschlag
Wer braucht das ?
Hier stehts doch genauer :
[Only registered and activated users can see links. Click Here To Register...]
Und übersichtlicher ...
06/19/2010 18:18 sido47#3
Ja ich wollte doch nur ein Beispiel mit einbringen und die anderen Sachen sollten eig auch drin sein und viel genauer is es da auch ned
06/19/2010 20:00 Shadow992#4
Quote:
Originally Posted by sido47 View Post
Ja ich wollte doch nur ein Beispiel mit einbringen und die anderen Sachen sollten eig auch drin sein und viel genauer is es da auch ned
Hast du Farbvariation erwähnt ?
Hast du hwnd erwähnt ?
Hast du gesagt was genau die Werte bedeuten ?

Alle 3 Sachen muss man mit Nein beantworten .
In meinem Tut jedoch steht alles 3 genau .
Außerdem wie gesagt übersichtlicher ist es dort auch , vielleicht verstehst du ja erst , wenn es dir ein paar mehr gesagt haben .

Ist ja nett , dass du helfen willst , aber man braucht nicht alles 3 und 4 mal posten ...
06/19/2010 22:10 HardCore.1337#5
Deine Wortwahl lässt sehr zu wünschen übbrig.
Du gehst außerdem gar nicht auf die genaue Funktionweise ein.

Z.B.

Quote:
Zu dem Befehl MouseMouve:
1. Parameter $pixrand[0] eine Koordinate
2. Parameter $pixrand[1] die andere Koordinate
Hätte man auf jeden Fall besser schreiben können.
06/19/2010 22:15 Baratoik#6
Ist euch schon einmal aufgefallen, dass das ganze mit VB2008 viel einfacher geht!

Quote:
Die ganzen Befehle lassen sich viel genauer beschreiben!
Ein gutes Beispiel wäre da, dass du einfach die

Hotkey set Funktion so umändern könntest, dass er mit Ghostmaus arbeitet!

so hast du dir unnötige Zeit gespart!

mfg. Bara
06/19/2010 22:19 HardCore.1337#7
Naja, also die Pixelsearch Funktion ist eigentlich schon sehr kurz gehalten.
06/20/2010 10:59 | Moep |#8
Wenns die Leute schon nicht mit guten Tutorials checken, wieso sollten sies dann bei schlechten tun?!...
06/22/2010 12:03 bladerofdarknes#9
also wer pixelsearch etc nicht einmal bei autoit versteht sollte es lieber gleich bleiben lassen...