hab ein problem mit einem Autoit ImageSearch Bot.Unzwar wenn ich den Bot starten erscheint er für ein bruchteil einer sec unten rechts iner taskleiste(da wo die uhr ist) dann schliest er sich wieder. Warum auch immer.
Das Problem ist ganz einfach ;-) Wenn du das Script startest läuft er es einmal schnell durch und beendet wieder. Du musst es nur laufen lassen z.B. mit ner while schleife:
Quote:
#include <ImageSearch.au3>
$x1 = 0
$y1 = 0
$findImage2 = _ImageSearch("P", 1, $x1, $y1, 0)
If $findImage2 = 1 Then
Sleep (5000)
EndIf
while 1
HOTKEYSET("{F6}", "Start")
HotKeySet("{F5}", "Stop")
sleep(25)
WEnd
Das Problem ist ganz einfach ;-) Wenn du das Script startest läuft er es einmal schnell durch und beendet wieder. Du musst es nur laufen lassen z.B. mit ner while schleife:
vielen dank es hat geklappt. jetz hätte ich noch ne frage unzwar kann man es so machen das der bot nur nach bild 2 (P) sucht nachdem er Bild 1 (L) gefunden hatt also so:
Bild 1 gefunden - suche nach bild 2 - bild 2 gefunden - sucht nicht mehr nach bild 2 - nach z.b 20 min bild 1 wieder gefunden - sucht wieder nach bild 2 - bild 2 gefunden -hört auf nach bild2 zu suchen .... und immer so weiter
ist das dann so richtig ?
#include <ImageSearch.au3>
while 1
HOTKEYSET("{F6}", "Start")
HotKeySet("{F5}", "Stop")
sleep(25)
WEnd
#include <ImageSearch.au3>
$x1 = 0
$y1 = 0
While 1
Do
$findImage1 = _ImageSearch("L", 1, $x1, $y1, 0)
Sleep(100)
Until $findImage1 = 1
If $findImage1 = 1 Then
Sleep (5000)
Send ("{enter}")
Sleep (2000)
Send ("123")
Sleep (1000)
Send ("{enter}")
Sleep (1000)
Send ("2009")
Send ("{enter}")
Sleep (20000)
Send ("{enter}")
Sleep (15000)
Do
$findImage2 = _ImageSearch("P", 1, $x1, $y1, 0)
Sleep(100)
Until $findImage2 = 1
If $findImage2 = 1 Then
Sleep (5000)
EndIf
EndIf
WEnd
Ich versuchs mal anders zu erklären.
Der Bot ist für ein Game gedacht.
BILD L = Ein teil des einloggbildschirms
BILD P = Ein teil des Ingame Bildschirms
Wenn ich ingame bin ist BILD P immer vorhanden
Also würde der bot If $findImage2 = 1 Then Sleep (5000) mehrmals machen er soll es aber nur einmal machen unzwar soll er nur nach BILD P suchen wenn er bild L gefunden hatt aber er soll nachdem er BILD P gefunden hatt wieder aufhören danach zu suchen und nur wieder anfangen wenn er BILD L wieder gefunden hatt
Ich versuchs mal anders zu erklären.
Der Bot ist für ein Game gedacht.
BILD L = Ein teil des einloggbildschirms
BILD P = Ein teil des Ingame Bildschirms
Wenn ich ingame bin ist BILD P immer vorhanden
Also würde der bot If $findImage2 = 1 Then Sleep (5000) mehrmals machen er soll es aber nur einmal machen unzwar soll er nur nach BILD P suchen wenn er bild L gefunden hatt aber er soll nachdem er BILD P gefunden hatt wieder aufhören danach zu suchen und nur wieder anfangen wenn er BILD L wieder gefunden hatt
Dieser Algorithmus würde genau dem zweiten Script von mir entsprechen...
Edit: Probier doch einfach mal das ganze mit MsgBoxen zu debuggen
hatt jetz soweit geklappt allerdings macht der bot nur die ersten if..endif schleife aber nicht die folgenen.
Code:
#include <ImageSearch.au3>
$x1 = 0
$y1 = 0
$findImage3 = _ImageSearch("F.bmp", 1, $x1, $y1, 0)
while 1
Do
$findImage1 = _ImageSearch("L.bmp", 1, $x1, $y1, 0)
Until $findImage1 = 1
If $findImage1 = 1 Then
MouseMove (528, 520)
Sleep (1000)
MouseClick ("left")
sleep(1000)
Send ("123456")
Sleep(1000)
send ("{Enter}")
Send ("123456")
Sleep(1000)
send ("{Enter}")
EndIf
WEnd
While 2
Do
$findImage2 = _ImageSearch("C.bmp", 1, $x1, $y1, 0)
Until $findImage2 = 1
If $findImage2 = 1 Then
send ("{Enter}")
ElseIf $findImage3 = 1 Then
send ("{Enter}")
send ("{Enter}")
EndIf
WEnd
While 3
do
$findImage4 = _ImageSearch("P.bmp", 1, $x1, $y1, 0)
Until $findImage4 = 1
If $findImage4 = 1 Then
$coord = PixelSearch ( 471 , 266 , 529 , 342 , 0x2A3333 )
mousemove($coord[0],$coord[1])
sleep (2000)
MouseClick ( "left" )
EndIf
WEnd
Du hast mit "while 1" ja auch ne Schleife dessen Bedingung immer erfüllt ist. Du könntest auch schreiben "while true" oder "while 1=1". Ergo ist es eine Endlosschleife ohne Abbruchbedingung und das Script wird deshalb diese auch nie verlassen, um sich z.B. anzuschauen was in den anderen Schleifen so los ist. Um einen Schleifenabbruch zu erzwingen könntest du sie mit "exitloop" abbrechen...
Oder du benutzt einfach das Schema was ich dir in meinem zweiten Script gegeben hab. Dort wartet das Script nacheinander auf bestimmte Zustände und führt danach eine Aktion aus.
Hast du das ganze eigentlich mal mit msgboxen gedebuggt, um ein Gefühl dafür zu bekommen wie sich der code bewegt?!
Aber wenn ichs nach deinem zweitem schma aufbaue sucht er nur einmal danach dasheist er macht alles nur einmal er soll es aber "immer"machen.
Z.b werde ich einmal gekickt der bot logt mich wieder ein und macht das was im bot steht. dann werde ich wieder gekickt dann soll der bot mich wieder einloggen ...usw.
Die Befehle zwischen Do und Until werden ausgeführt, bis der Ausdruck wahr ist. (also nur einmal ?)
Ne hab noch keine msgbox gemacht wieso denn?
Code:
#include <ImageSearch.au3>
$x1 = 0
$y1 = 0
While 1
Do
$findImage1 = _ImageSearch("L.bmp", 1, $x1, $y1, 0)
Sleep(100)
Until $findImage1 = 1
If $findImage1 = 1 Then
MouseMove (528, 520)
Sleep (1000)
MouseClick ("left")
sleep(1000)
Send ("123456")
Sleep(1000)
send ("{Enter}")
Send ("123123")
Sleep(1000)
send ("{Enter}")
Do
$findImage2 = _ImageSearch("C.bmp", 1, $x1, $y1, 0)
Until $findImage2 = 1
If $findImage2 = 1 Then
send ("{Enter}")
ElseIf $findImage3 = 1 Then
send ("{Enter}")
send ("{Enter}")
EndIf
Do
$findImage4 = _ImageSearch("P.bmp", 1, $x1, $y1, 0)
Until $findImage4 = 1
If $findImage4 = 1 Then
$coord = PixelSearch ( 471 , 266 , 529 , 342 , 0x2A3333 )
mousemove($coord[0],$coord[1])
sleep (2000)
MouseClick ( "left" )
EndIf
EndIf
WEnd
so wäre es doch richtig aber hier bei macht er auch nur das erste
[How To] AutoIt ImageSearch ( am Metin2 Beispiel ) 01/16/2015 - Coding Tutorials - 71 Replies Hi,
Ich hab mich mal Hingesetzt und nen Video-TuT über die ImageSearch Funktion in AutoIt gemacht, da diese vielen nicht bekannt ist!
Ein kleiner Programmier Fehler ist drin, aber die Imagesearch Funktioniert.
Hab das Video Nachts um 3.30 Uhr gemacht.
So hier das Video:
YouTube - AutoIt ImageSearch
[GUIDE] AutoIt ImageSearch 10/18/2009 - Metin2 Guides & Templates - 14 Replies Ein sehr praktischer Befehl in AutoHotkey: ImageSearch. (http://www.autohotkey.com/docs/commands/ImageSear ch.htm)
Was macht der Befehl?- er sucht den ganzen Bildschrim nach einem Vorgegebenen Bild ab. Vielleicht auch Nützlich für den Angelbot, weil die Leute nicht mehr Pixel suchen müsen, sondern nuch noch Screens machen müssen!
Diesen Befehl gibt es auch für AutoIt!
_________________________________________________ ___________________________
. Kopiere die ImageSearchDLL.dll in...
Autoit Problem: imagesearch in metin2 07/29/2009 - AutoIt - 5 Replies tach
Ich hab ein problem mit der imagesearch funktion(muss man erst icluden) und zwar das Bild was ich suchen möchte( teil vom namen der gemsichi )
findet er auf dem Desktop, er findet es wen ich es mit der Vorschau öffne, wenn ich es mit paint öffne aber nicht im Metin2 fentser. woran kann das liegen?
autoit pixelsearch bzw imagesearch 02/04/2009 - General Coding - 0 Replies hi leute,
ich hab mir nen bot mit autoit programmiert. Es ist n Browsergame, das auf Flash basiert. Ich habe Imagesearch benutzt und alles funkzt prima.
Das Problem:
Der Pc ist immer besetzt, wenn ich botte...
Also meine Frage: Gibts da ne alternative zu ImageSearch, die auch in minimierten Fenstern funktioniert?