|
You last visited: Today at 17:40
Advertisement
[AutoIT] Imagesearch Problem
Discussion on [AutoIT] Imagesearch Problem within the AutoIt forum part of the Coders Den category.
08/24/2014, 19:58
|
#1
|
elite*gold: 0
Join Date: Jul 2010
Posts: 1,345
Received Thanks: 1,609
|
[AutoIT] Imagesearch Problem
Hey liebe Community.
Ich bin mal wieder auf ein Problem gestoßen. Und zwar habe ich einen Bot für Aura Kingdom erstellt, der per Imagesearch ein Item findet und automatisch löscht. Das Script dazu sieht wie folgt aus:
Code:
#include <ImageSearch.au3>
Hotkeyset("{UP}", "Start")
Hotkeyset("{DOWN}", "anal")
$X = 0
$Y = 0
Func anal()
Exit
EndFunc
Global $funcs = false
Func Start()
$funcs = True
EndFunc
While 1
if $funcs = True then
$Search = _ImageSearch("item.bmp", 0, $X, $Y, 0)
If $Search = 1 Then
MouseMove($X, $Y,10)
Sleep(500)
MouseDown("left")
Sleep(500)
MouseMove(673, 620,10)
Sleep(500)
MouseUp("left")
Sleep(500)
MouseMove(580, 733,10)
MouseClick("left")
MouseClick("left")
MouseClick("left")
MouseClick("left")
Sleep(500)
EndIf
EndIf
WEnd
Dieses Script funktioniert wunderbar. - Einfach [↑] drücken und schon legt er los.
Aber wenn ich das alles nun in eine Gui packe bzw die Koordinaten per Input eintragen lassen möchte, kackt der Bot beim drücken von "Start" ab.
Das ganze sieht bei mir dann so aus:
Code:
#AutoIt3Wrapper_UseX64=n
#RequireAdmin
#include <ImageSearch.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Hotkeyset("{UP}", "Start")
Hotkeyset("{DOWN}", "Ende")
FileInstall('C:\Vinci HD Backup\Desktop Backup 14.03.2014\Prof. Linebecks Level & Farmbot NEW\bot3.jpg', @ScriptDir & 'bot3.jpg')
$GUI_Main = GUICreate("Bot", 269, 413, 400, 100, $WS_POPUPWINDOW, BitOR($WS_EX_TOPMOST,$WS_EX_CONTROLPARENT))
GUICtrlSetState(-1,$GUI_DISABLE)
$Pic = GUICtrlCreatePic(@ScriptDir & "bot3.jpg", 0, 0, 269, 413)
GUICtrlSetState(-1, $GUI_DISABLE)
GUISetState()
$X = 0
$Y = 0
$input1 = GUICtrlCreateInput(IniRead("config.ini", "Einstellungen", "Koordinaten 1", ""), 30, 152, 50, 15)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$text1 = GUICtrlCreateLabel(":", 30, 130, 60, 20)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$input2 = GUICtrlCreateInput(IniRead("config.ini", "Einstellungen", "Koordinaten 2", ""), 150, 152, 50, 15)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$text2 = GUICtrlCreateLabel("", 150, 130, 60, 20)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$input3 = GUICtrlCreateInput(IniRead("config.ini", "Einstellungen", "Koordinaten 3", ""), 30, 202, 50, 15)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$text3 = GUICtrlCreateLabel("", 30, 180, 60, 20)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$input4 = GUICtrlCreateInput(IniRead("config.ini", "Einstellungen", "Koordinaten 4", ""), 150, 202, 50, 15)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$text4 = GUICtrlCreateLabel("", 150, 180, 60, 20)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$start = GUICtrlCreateLabel("START", 30, 375, 72, 20);Start
$infotool = GUICtrlCreateLabel("TOOL", 230, 25, 30, 30)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
Global $funcs = false
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $infotool
Infotool ()
Case $start
Start ()
EndSwitch
if $funcs = True then;wenn start gedrückt wird
$Search = _ImageSearch("item.bmp", 0, $X, $Y, 0);bild wird gesucht
If $Search = 1 Then;wenn bild gefunden, dann ...
MouseMove($X, $Y,10);.. maus aufs bild bewegen und ...
Sleep(500)
MouseDown("left");.. linke maus taste gedrückt halten
Sleep(500)
MouseMove(GUICtrlRead($input1), GUICtrlRead($input2),10);Item zur leeren Stelle ziehen
Sleep(500)
MouseUp("left");linke maustaste loslassen
Sleep(500)
MouseMove(GUICtrlRead($input3), GUICtrlRead($input4),10);löschen bestätigen
MouseClick("left")
MouseClick("left")
MouseClick("left")
MouseClick("left")
Sleep(500)
EndIf
EndIf
WEnd
Func Start()
$funcs = True
EndFunc
Func Ende()
IniWrite("config.ini", "Einstellungen", "Koordinaten 1", GUICtrlRead($input1))
IniWrite("config.ini", "Einstellungen", "Koordinaten 2", GUICtrlRead($input2))
IniWrite("config.ini", "Einstellungen", "Koordinaten 3", GUICtrlRead($input3))
IniWrite("config.ini", "Einstellungen", "Koordinaten 4", GUICtrlRead($input4))
Exit
EndFunc
Func Infotool ()
run( @ScriptDir & "/Au3Info_x64.exe" )
EndFunc
Kann mir jemand erklären, weshalb hier die Imagesearch-Funktion nicht funktioniert? Es ist ja im Prinzip die selbe Vorgehensweise wie im vorherigen Script... oder habe ich etwas nicht beachtet?
|
|
|
08/24/2014, 22:53
|
#2
|
elite*gold: 113
Join Date: Dec 2009
Posts: 16,685
Received Thanks: 4,450
|
Inwiefern "kackt" er denn ab?
Errormeldung, oder tut sich einfach nichts?
|
|
|
08/24/2014, 23:16
|
#3
|
elite*gold: 0
Join Date: Jul 2010
Posts: 1,345
Received Thanks: 1,609
|
Quote:
Originally Posted by Shanks
Inwiefern "kackt" er denn ab?
Errormeldung, oder tut sich einfach nichts?
|
Es tut sich einfach nichts.
Das Problem lag an 64bit. Ich muss das Programm scheinbar erst in 32bit compilen damit es funktioniert.
#AutoIt3Wrapper_UseX64=n habe ich noch entfernt, danach ging es komischerweise. In 64bit compiled gibt er mir einen Array Error o.O
Aber eigentlich würde die 32bit Version bei mir reichen, da man sie ja auch auf 64bit-Systemen ausführen kann.
|
|
|
08/25/2014, 09:09
|
#4
|
elite*gold: 0
Join Date: May 2008
Posts: 167
Received Thanks: 41
|
heyho,
also dass du das Script auf 32-bit-Ebene laufen lassen musst ist normal,
da die normale ImageSearchDLL.dll für 32-bit Systeme ist.
Compilen ist nicht zwingend nötig, du könntest das Script auch direkt im x86-Modus laufen lassen,
dabei sollte eigentlich auch der AutoIt Wrapper-Befehl helfen.
Notfalls hilft aber auch das Menü (Rechtsklick auf die Datei - Run Script (x86).
|
|
|
 |
Similar Threads
|
AutoIt ImageSearch Problem
07/22/2013 - AutoIt - 9 Replies
Hallo,
ich habe mal eine kleinen Script mit AutoIt geschrieben.
Sinn ist es wenn er das Bild erkennt soll er auf dieses klickenn.
Allerings bewegt sich die Maus nur an den oberen Bilschirmrand, kann mir einer vieleicht helfen?
#include<ImageSearch.au3>
$x=0
|
Autoit Imagesearch Problem
04/22/2013 - AutoIt - 5 Replies
Hallo und zwar wollte ich mir einen Awakebot für flyff schreiben mittels Imagesearch Funktion in Autoit
als test wollte ich ihn einfach mal einen ordner zuklicken lassen doch als ich den bot starten wollte kam diese fehlermeldung:
http://i.epvpimg.com/F5kXe.jpg
mein scypt sieht so aus:
#AutoIt3Wrapper_UseX64=n
#include<imagesearch.au3>
;hotkeys festlegen
|
Autoit Imagesearch problem
09/24/2012 - AutoIt - 3 Replies
Hallo
Ich wollte mal fragen ob es möglich ist in nem script den "bildschirm" in verschiedene bereiche zu unterteilen und dann diese eins nach dem anderen nach nem bild absuchen zu lassen?
wenn er da dann ein "bild" gefunden hat, soll er halt das machen was er soll und dann zum nächsten bereich weiter gehen und da weiter suchen.
hab bis jetzt nix darüber gefunden.
kann mir da vieleicht jemand ne kleine zeile posten die mich weiter bringt? :)
|
All times are GMT +1. The time now is 17:41.
|
|