Mousemove & Mouseclick

11/09/2013 10:52 Goku.#1
Hallo, wollte gerade nen Bot schreiben, wo Grüne Tiere da rumlaufen,
alles geklappt bis zum Mousemove, der geht auch mit der Maus auf das grüne Tier, bloß wie kombiniere ich das mit einen Klick.
Wie baue ich eine Startfunktion + Pausefunktion ein?


PHP Code:
HotKeySet("{F6}","_Exit")


while 
1
   $variable 
pixelsearch(37,123,1356,751,Farbe wird öfters (selberdefiniert)
   If 
IsArray($variable) = True Then
      Mousemove
($variable [0], $variable [1], 1) ; hat das Ziel gefundensoll nun Klicken -> ?????
     
      
Sleep (12000)
   EndIf
   
WEnd
   
   Func _Exit
()
      Exit
   
EndFunc 
Falls ich unter Mousemove -> MouseClick("left") einsätze, klickt der irgendwo rum anstatt auf das Tier
11/09/2013 11:29 de4df1sh#2
Mein Tipp:
guck mal in die AutoIt Hilfe.
Unter MouseClick haben wir da nämlich folgende Parameter
Code:
MouseClick ( "button" [, x, y [, clicks [, speed ]]] )
.
Das heißt du machst kein MouseMove sondern klickst direkt mit MouseClick auf die Koordinaten.
11/09/2013 11:39 Goku.#3
Quote:
Originally Posted by de4df1sh View Post
Mein Tipp:
guck mal in die AutoIt Hilfe.
Unter MouseClick haben wir da nämlich folgende Parameter
Code:
MouseClick ( "button" [, x, y [, clicks [, speed ]]] )
.
Das heißt du machst kein MouseMove sondern klickst direkt mit MouseClick auf die Koordinaten.
jo aber die koordinaten sind immer anderes aufgrund pixelsearch
11/09/2013 11:58 alpines#4
PixelSearch returned dir doch einen 1D-Array wo
[0] Die X-Koordinate ist
[1] Die Y-Koordinate des gefundenen Pixels ist.
Verwende sie doch einfach.
11/10/2013 12:52 Croco™#5
Wie du bei den Parametern von MouseClick siehst, ist X und Y optional.
Somit würde dieser Befehl:
Quote:
MouseClick ( "left" )
einfach nur einen click erzeugen. (Egal wo die Maus ist). Das nun mit deinem Script verknüpft würde entweder so:
Quote:
HotKeySet("{F6}","_Exit")


while 1
$variable = pixelsearch(37,123,1356,751,Farbe wird öfters (selber) definiert)
If IsArray($variable) = True Then
Mousemove($variable [0], $variable [1], 1) ; hat das Ziel gefunden, soll nun Klicken -> ?????
MouseClick ( "left" )
Sleep (12000)
EndIf
WEnd

Func _Exit()
Exit
EndFunc
oder so aussehen:
Quote:
HotKeySet("{F6}","_Exit")


while 1
$variable = pixelsearch(37,123,1356,751,Farbe wird öfters (selber) definiert)
If IsArray($variable) = True Then
MouseClick ( "left", $variable [0], $variable [1])
Sleep (12000)
EndIf
WEnd

Func _Exit()
Exit
EndFunc
11/10/2013 16:37 Rolle#6
Code:
Hotkeyset ("{F5}","pause")
Func pause()												

    $Paused = Not $Paused
    While $Paused
	Sleep(100)
        ToolTip('Script  "Paused"', 0, 0)
    WEnd
		ToolTip('Script  "continued"',0,0)
	Sleep (1000)
		ToolTip ("")

EndFunc
11/10/2013 19:24 Logtetsch#7
Würde jetzt ControlClick empfehlen.
Wie du die X, Y Koordinaten herausfindest, hat dir schon alpines gezeigt.
Ansonsten kannst du zur PostMessage UDF von KDeluxe greifen.

PostMessage UDF → [Only registered and activated users can see links. Click Here To Register...]
ControlClick → [Only registered and activated users can see links. Click Here To Register...]