Imagesearch

  • Hallo,
    und zwar bin ich total am verzweifeln. Ich suche schon tagelang Infos und probier selbst rum, aber kriegs iwi nicht auf die Reihe.
    Ich will die Imagesearch Funktion nutzen, um einen Button auf einer Seite zu finden und anschließend einen Klick ausführen. Nun habe ich erfahren, dass ich iwelche .ddl und Include Datein brauche. Welche sind es genau und wo finde ich diese?
    Wie würde ein Imagesearch Code mit anschließendem Klick lauten ( Bitte mit Bsp - z.B auf Google.de > Google Suche Button)?
    Hoffe jmd. kann mir auf die Schnelle helfen!
    Zasalamel :)

    Einmal editiert, zuletzt von Zasalamel (19. November 2012 um 13:24)

  • Hi,

    habe dir die beiden Dateien angehängt, ist eine *.au3 und eine *.dll

    Ein Beispiel sähe wie folgt aus:

    Spoiler anzeigen
    [autoit]

    #AutoIt3Wrapper_UseX64=n
    #include <imagesearch.au3>

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

    dim $result, $x, $y

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

    $result = _ImageSearch("suchbild.bmp",1,$x,$y,1)

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

    if $result = 1 then MouseClick("left",$x,$y,1,0)

    [/autoit]

    $x und $y sind die mittleren Koordinaten des Bildes.
    Du musst natürlich ein zu suchendes Bild erstellen, hier z.b. "suchbild.bmp".

    ...und bei einem 64bit OS nicht vergessen "#AutoIt3Wrapper_UseX64=n", sonst funktioniert das Teil nicht :)

    Gruß
    x0r

  • "
    $x und $y sind die mittleren Koordinaten des Bildes."

    Das versteh ich nicht, welche koordinaten ich da einfügen soll..kannst du bitte ein Script mit dem Google Suche button erstellen?

  • Du musst im Script gar nix ändern, einfach ein Bild vom Suche-Button machen, einfügen und laufen lassen.
    Schätze mal, dass ich dir den Suche-Button nicht anhängen brauch, das kannst du selbst ;)

    $x und $y sind Variablen, die von der Funktion zurückgegeben werden und sind genau die Bildmitte.
    Also nichts ändern, sonst funktionierts nicht.

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

  • iwi klappt es bei mir nicht..das Skript lässt sich ausführen, aber es erfolgt kein Klick darauf...muss das bmp ein besonderes sein? (24bit, usw.)

  • Ah stop..jetzt klappts, hab ein kontrastreicheren Button verwendet!
    Er geht jzz zwar drauf aber klickt nicht ?(

  • ich benutze immer 24bit bmp, schätze da ist die Qualität höher bzw die Chance es zu finden.

    Bei mir funktioniert das Script so 1:1

    Selbstverständlich muss der Suche-Button auch bei der Ausführung des Scripts sichtbar sein. Wenn das nicht so ist, kannst du eine Schleife drum rum bauen und eine Variable einfügen, damit es nur so lange ausgeführt wird, bis der Button gefunden/geklickt wurde..

    Das dürftest du hinkriegen, nehm ich an?

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

  • läuft super, aber hab noch ne Frage
    Kann man mit Imagesearch eine Bedingung stellen?
    Z.b. wenn Bild XY auftaucht, dann mache dies und das? Betonung liegt auf "auftaucht".

  • Ich hab von meinem Chef ne lange Routinearbeit bekommen und gedacht wofür soll ich stundenlang dran sitzen, wenn alles doch viel einfacher und intensiver geht und ich wichtigere Dinge für den Betrieb erledigen kann. Er hat mir die Einwilligung gegeben und mich forschen lassen, wie wir bestimmte Pc Arbeiten automatisieren können. Da kam mir AutoIt in den Sinn
    :thumbup:

  • ah, noch so einer :D

    Das Gleiche hat mir mein Chef vor 2 Jahren gesagt - kleine Beunruhigung vorab, dieses Automatisierungszeuch wird kein Ende nehmen :P

    -

    Zurück zu Imagesearch:

    _ImageSearch("bild.bmp",0,2,3,4)

    0 = Koordinaten zurückgeben 1 = ja,0 = nein
    2, 3 = Koordinaten vom Bild (musst du immer angeben, ob du welche haben willst oder nicht)
    4 = Suchgenauigkeit, z.b. Pixel überspringen (nur jedes 2. absuchen (glaube so war das))

    sähe dann z.b. so aus:

    $result = _ImageSearch("bild.bmp",0,$x,$y,0) ;ohne coords
    $result2 = _ImageSearch("anderesbild.bmp",1,$x,$y,0) ;mit coords

    if $result = 1 then msgbox(0,"","bild gefunden")
    if $result2 = 1 then msgbox(0,"","anderesbild gefunden bei: " & $x & "," & $y)

    usw usf... kannste quasi alles mit machen :)

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

  • Ou Backe, naja immerhin besser als alles händisch zu machen :D
    Ah super, es klappt! Dann muss ich das Skript noch zsm. basteln, und Kaffee trinken :D
    Klasse Sache, danke x0r! :thumbup:

  • kein Thema..

    Wenn du weiterhin Hilfe brauchst, schreib mich gern an.

    Schließlich sind wir quasi sowas wie "Leidensgenossen" :whistling:

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.