Image Search funktioniert nicht

  • Moin an alle,
    Mein Imageserachscript funktioniert nicht ich habe die dll in windows system32 reinkopiert und das udf in mein includeordner.Ich habe auch natürlich die Bilder in meinen projektordener kopiert.

    [autoit]

    #include<ImageSearch.au3>

    [/autoit][autoit][/autoit][autoit]

    $x1=0
    $y1=0
    $x2=0
    $y2=0

    [/autoit][autoit][/autoit][autoit]

    Sleep(5000)
    MouseClick("left",453,203,1,10)
    Sleep(5500)
    MouseClick("left",329,384,1,10)
    Sleep(100)
    Send("bla bla bla ;-)")
    Sleep("100")

    [/autoit][autoit][/autoit][autoit]

    Func starten()
    While 1
    $result=_ImageSearch("bild1.png",1,$x1,$y1,0)
    If $result= 1 Then
    MouseClick("left",$x1,$y1)
    Sleep("2500")
    $result2=_ImageSearch("bild2.png",1,$x2,$y2,0)
    If $result2= 1 Then
    MouseClick("left",$x2,$y2)
    Sleep("3000")
    EndIf
    EndIf
    WEnd
    EndFunc

    [/autoit][autoit][/autoit][autoit]

    Send("{BACKSPACE}")
    Sleep("5500")
    MsgBox(0,"Fertig","Fertig!")

    [/autoit]

    der frechdachs überspringt das einfach (vonn Func bis EndFunc);-) un macht bei backspace weiter.was ist falsch?

    Einmal editiert, zuletzt von Lucas (5. Januar 2011 um 18:45)

  • Hallo Lucas,

    obwohl du schon seit Sept. 2009 hier angemeldet bist, hier eine Liste mit nützlichen Links:

    Hier kannst du dir die Hilfe herunterladen.
    Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/TutorialSehr hilfreich ist auch das Buch von peethebee

    und jetzt zu deinem Problem: du rufst die func nie auf, im übrigen ist ImageSearch sehr fehler anfällig und für eine echte Automatiierung daher schlecht geeignet, wenn du uns schilderst was du damit lösen willst können wir dir besser helfen,

    mfg autoBert

  • Moin erst mal danke für die antworten.Ich habe Funk nun durch Hotkeyset aufgerufen es funktioniert aber weiterhin nicht.mein ziel ist es auf einen button zu klicken der immer siene position ändert und ich wüsste nich wie ich das anders lösen soll.

    [autoit]

    #include<ImageSearch.au3>

    [/autoit][autoit][/autoit][autoit]

    HotKeySet("{NUMPAD1}","starten")
    HotKeySet("{NUMPAD2}","beenden")

    [/autoit][autoit][/autoit][autoit]

    $x1=0
    $y1=0
    $x2=0
    $y2=0

    [/autoit][autoit][/autoit][autoit]

    While 1
    Sleep(1)
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Sleep(5000)
    MouseClick("left",453,203,1,10)
    Sleep(5500)
    MouseClick("left",329,384,1,10)
    Sleep(100)
    Send("bla")
    Sleep("100")

    [/autoit][autoit][/autoit][autoit]

    Func starten()
    While 1
    $result=_ImageSearch("bild1.png",1,$x1,$y1,0)
    If $result= 1 Then
    MouseClick("left",$x1,$y1)
    Sleep("2500")
    $result2=_ImageSearch("bild2.png",1,$x2,$y2,0)
    If $result2= 1 Then
    MouseClick("left",$x2,$y2)
    Sleep("3000")
    EndIf
    EndIf
    WEnd
    EndFunc

    [/autoit][autoit][/autoit][autoit]

    Send("{BACKSPACE}")
    Sleep("5500")
    MsgBox(0,"Fertig","Fertig!")

    [/autoit][autoit][/autoit][autoit]

    Func beenden()
    exit 0
    EndFunc

    [/autoit]

    Auch wenn ich das func einfach wegnehme passiert nichts es kommt eine fehlermeldung.

    [Blockierte Grafik: http://img210.imageshack.us/i/errorxir.png/]

    http://img210.imageshack.us/i/errorxir.png/

    Einmal editiert, zuletzt von Lucas (4. Januar 2011 um 15:51)

  • imagesearch.au3 in deine includes verzeichniss kopieren...
    imagesearch.dll ins system32 verzeichnis kopieren

    und nochmal die beiden im selben ordner wie deine test.au3...
    ganz oben das einfügen:

    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseX64=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    ;#RequireAdmin

    [/autoit][autoit][/autoit][autoit][/autoit]

    ggf #reqireadmin

  • Ich habe das ausprobiert was ihr gesagt habt es bleibt aber weiterhin bei dem Fehler:
    http://img210.imageshack.us/i/errorxir.png/

    Ich habe mir dieses popelskript gescrieben was einwandfrei funktioniert:

    [autoit]

    #include <imagesearch.au3>

    [/autoit][autoit][/autoit][autoit]

    $x1 = 0
    $y1 = 0

    [/autoit][autoit][/autoit][autoit]

    $res = _imagesearch("bild1.png",1,$x1,$y1,100)
    If $res = 1 Then
    MouseClick("left",$x1,$y1,1,10)
    Else
    MsgBox(0,"Bla","Nichts gefunden....")
    EndIf

    [/autoit]

    Wo hin gegen das Komplexere script nicht funktioniert:

    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseX64=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    ;#RequireAdmin

    [/autoit][autoit][/autoit][autoit]

    #include <ImageSearch.au3>

    [/autoit][autoit][/autoit][autoit]

    global $x = 0
    global $y = 0
    global $x1 = 0
    global $y1 = 0
    global $x2 = 0
    global $y2 = 0
    global $x3 = 0
    global $y3 = 0

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Sleep(5000)
    MouseClick("left",390,207,1,10)
    Sleep(5500)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $res = _imagesearch("bild3.jpg",1,$x,$y,100)
    If $res = 1 Then
    MouseClick("left",$x,$y,1,10)
    Sleep(100)
    Send("bla bla bla ;) ")
    EndIf

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $res1 = _imagesearch("bild1.png",1,$x1,$y1,100)
    If $res1 = 1 Then
    MouseClick("left",$x1,$y1,1,10)
    Sleep(3000)
    Else
    MsgBox(0,"Bla","Nichts gefunden....")
    EndIf

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $res2 = _imagesearch("bild2.png",1,$x2,$y2,100)
    If $res2 = 1 Then
    MouseClick("left",$x2,$y2,1,10)
    Sleep(2500)
    Else
    $res3 = _imagesearch("bild4.jpg",1,$x3,$y3,100)
    MouseClick("left",$x3,$y3,1,10)
    Sleep(300)
    MouseClick("left",$x2,$y2,1,10)
    Sleep(3000)
    EndIf

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Send("{BACKSPACE}")
    Sleep(5500)
    MsgBox("","Herzlichen Glückwunsch!","Es hat geklappt!")

    [/autoit]

    Einmal editiert, zuletzt von Lucas (4. Januar 2011 um 17:49)

  • das ist ein standart fehler, das bei 64bit os kommt...
    und wenn du alles wie oben machst geht das... und dazu diese fehler behebst...

    zeile 48:
    MouseClick("left",$x2,$y2,1,10)

    und
    letzte zeile:
    MsgBox("", "Herzlichen Glückwunsch!","Es hat geklappt!")

  • ich habe die fehler behoben die most wanted gefunden hat es bleibt aber weiterhin bei dem fehler.
    wie kann ich das mit dem @error prüfen :?: zwar bin ich seit 2009 angemeldet aber immer noch autoit anfänder :D :P

  • im übrigen ist ImageSearch sehr fehler anfällig und für eine echte Automatiierung daher schlecht geeignet, wenn du uns schilderst was du damit lösen willst können wir dir besser helfen,

    mein ziel ist es auf einen button zu klicken der immer siene position ändert und ich wüsste nich wie ich das anders lösen soll

    Nimm das Au3-Info-Tool und ermittle die ControlID des Buttons, danach schaust du dir die Hilfe zu

    Zitat

    ControlClick
    --------------------------------------------------------------------------------

    Sendet einen Mausklick-Befehl an das angegebene Control

    an und du hast eine saubere Lösung. Die Hilfe bis mindetens einchliesslich Makrorefrenz durchzuarbeiten, könnte auch nicht schaden, wenn du auch GUI's erstellen willst bi einchlieslich GUI-Referenz

    mfg autoBert

  • Hallo autobert danke für den tipp :thumbup: mit dem infotool ,der button benfindet sich aber im fenster vom firefox sodass er mir immer nur MozillaUIWindowClass ausspuckt.wie kann ich die controlid von diesem button herrausfinden ?

  • Hallo Lucas,

    da es sich um den FireFox handelt solltest du dich mit der Firefox-Automatisierung beschäftigen, da ControlClick dafür nicht funktioniert:

    • Mozrepl wird dafür benötigt, kannst du von hier installieren: http://wiki.github.com/bard/mozrepl/
    • FF.au3 herunterladen
    • Mozrepl über Extras|Mozrepl im Firefox starten
    • Funktionsrefernz findest du hier
    • Zum testen Skript starten: [autoit]#Include <FF.au3>

      _FFStart("http://www.autoit.de", Default, 2)

      If _FFIsConnected() Then
      If _FFLoadWait() Then MsgBox(64, "", "Page was loaded in " & @extended & "ms")

      Sleep(3000)
      ;_FFQuit() ;FireFox schliessen
      EndIf

      [/autoit]
    [autoit][/autoit]
      [/autoit]


    Viel Spass bei der FireFox-Automatisierung

    mfg autoBert