leftklick until brauche Hilfe

05/25/2012 07:17 masterchief23#1
Hallo Leute,

Habe erst kürzlich angefangen Autoit zu benutzen und bin nun ein wenig auf den geschmack gekommen :).. Wollte mir nun einen einfachen Bot schreiben:

HotKeySet("{F6}","_Exit")


While 1
$Variable = PixelSearch(1529,309,242,582,0x000F3B)
If IsArray($Variable) = True Then
MouseMove($Variable [0], $Variable [1],1)
MouseClick("right")
sleep(500)
send("^!a")
EndIf
WEnd
Func _Exit()
Exit
EndFunc

Also er Sucht jetzt ja einfach den Pixel und drückt mit rechtsklick drauf und dann drückt er strg. Jetzt wollte ich aber noch etwas hinzufügen damit dieser Bot sozusagen einfach irgendwo auf dem Fenster leftklicks macht bis er diesen Pixel gefunden hat. Und wenn er ihn gefunden hat soll er sofort stoppen, wenn der Pixel dann nicht mehr zu finden ist soll er aber wieder weiterhin einfach irgendwo hin klicken bis er den Pixel wieder findet. Aber irgendwie bekomme ich das nicht ganz hin :( .. bräuchte ein wenig Hilfe

Danke schon mal im Voraus
05/25/2012 07:44 potato.#2
$width = 1
$height = 1
$totalwidth = Fensterbreite
$totalheight = Fensterhöhe
While $coords <> $totalwidth & "," & $totalheight
MouseMove($width,$height)
If IsArray($Variable) = True Then
MouseClick("right")
sleep(500)
send("^!a")
Else
$width = $width +1
MouseClick("left")
EndIf
If $width > $totalwidth Then
$width = 1
$height = $height +1
EndIf
$coords = $width &","& $height
WEnd

------------
hab jetzt glaub nicht alles vom code aufgeschrieben, aber so fährt
er auf jeden Fall von oben links bis unten rechts alles ab und klickt
überall links, das PixelSearch or whatever musste noch einbauen,
bin grad übermüdet und steig nicht mehr ganz durch:>
05/25/2012 08:01 masterchief23#3
also habe das jetzt eingefügt und die fensterbreite und höhe auch reingeschrieben aber er klickt mir komischerweise immer noch nicht herum :/ .. also das ganze sieht jetzt so aus :

HotKeySet("{F6}","_Exit")


While 1
$Variable = PixelSearch(1529,309,242,582,0x000F3B)
If IsArray($Variable) = True Then
MouseMove($Variable [0], $Variable [1],1)
MouseClick("right")
sleep(500)
send("^!a")
EndIf
WEnd
Func _Exit()
Exit
EndFunc



$width = 1
$height = 1
$totalwidth = 806
$totalheight = 668
While $coords <> $totalwidth & "," & $totalheight
MouseMove($width,$height)
If IsArray($Variable) = True Then
MouseClick("right")
sleep(500)
send("^!a")
Else
$width = $width +1
MouseClick("left")
EndIf
If $width > $totalwidth Then
$width = 1
$height = $height +1
EndIf
$coords = $width &","& $height
WEnd

HotKeySet("{F6}","_Exit")

Oder wie muss ich das ganze zusammensetzen ^^?
Danke dir
05/25/2012 11:00 lolkop#4
Quote:
Originally Posted by masterchief23 View Post
also habe das jetzt eingefügt und die fensterbreite und höhe auch reingeschrieben aber er klickt mir komischerweise immer noch nicht herum :/ .. also das ganze sieht jetzt so aus :

HotKeySet("{F6}","_Exit")


While 1
$Variable = PixelSearch(1529,309,242,582,0x000F3B)
If IsArray($Variable) = True Then
MouseMove($Variable [0], $Variable [1],1)
MouseClick("right")
sleep(500)
send("^!a")
EndIf
WEnd
Func _Exit()
Exit
EndFunc



$width = 1
$height = 1
$totalwidth = 806
$totalheight = 668
While $coords <> $totalwidth & "," & $totalheight
MouseMove($width,$height)
If IsArray($Variable) = True Then
MouseClick("right")
sleep(500)
send("^!a")
Else
$width = $width +1
MouseClick("left")
EndIf
If $width > $totalwidth Then
$width = 1
$height = $height +1
EndIf
$coords = $width &","& $height
WEnd

HotKeySet("{F6}","_Exit")

Oder wie muss ich das ganze zusammensetzen ^^?
Danke dir
zunächst einmal benutzen wir hier code tags:
Code:
<hier dein code>
nun zu deinem zusammen gesetzten tool... überleg mal was genau dort passiert....
Code:
While 1
    [...]
WEnd
immer wenn die expression hinter While, = True ist, springt WEnd wieder zurück zum anfang der schleife. da 1 immer True ist, springt die WEnd funktion von daher immer wieder zum anfang der schleife.

daraus folgt, das kein code hinter dieser schleife jemals erreicht werden kann...

du musst beim scripten immer bedenken, das dein script zeile für zeile abgearbeitet wird. ist eine zeile nicht erreichbar, so kann sie natürlich auch nicht ausgeführt werden, und ist somit überflüssig.