ImageSearch-Problm > Button wird nicht gefunden

01/17/2014 23:27 Vaysh#1
Hey ihr Lieben,

ich hab mich nun ein wenig in ImageSearch eingelesen und stoße aktuell auf Schwierigkeiten.
Im Großen und Ganzen funktioniert alles. Alle Buttons werden gefunden und angeklickt wie ichs wollte....bis auf einen.
Egal welchen Toleranz-Wert ich wähle, egal ob *.bmp,*.png oder *.jpg, egal wie klein oder groß der Bildausschnitt...Autoit findet den Button nicht.
Ich hab mal ein wenig geforscht und vermute jetzt, dass die Website den Button aus mehreren Fragmenten zusammensetzt und AutoIT deswegen nicht mit meinem Screen vergleichen kann.
Hat dafür jemand eine Idee?

Wäre sehr dankbar

LG
01/17/2014 23:28 alpines#2
Pixelpattern einfach nutzen, ist vielleicht ein weniger aufwendiger aber besser als ImageSearch.
01/17/2014 23:45 Vaysh#3
Das ging ja fix :) danke :)

kannst du das vielleicht genauer erklären? Google spuckt nicht so viel nützliches aus.
ich nehme mal an man sucht nicht nach einem bunten Bildchen sondern wonach?
Pattern=(engl.)Muster/Vorlage....man sucht also nach einer bestimmten Anordnung von Pixeln?
ein paar mehr Infos wären supi :)
01/18/2014 00:11 alpines#4
Richtig, statt nach einem kompletten Bild zu suchen such einfach nach Pixel die einen bestimmten Abstand zu einander haben. So erhöhst du die Wahrscheinlichkeit eines richtigen Fundes wenn du mehrere Pixel nimmst und sie den korrekten Abstand haben.
Das ganze kannst du in einer For-Schleife sehr gut mit Arrays realisiern.
01/21/2014 22:31 Vaysh#5
ich hab mich jetzt mal dran versucht aber war leider nicht wirklich erfolgreich.
meine idee war einfach in einem bestimmten Bereich 2 Pixel zu suchen....wenn gefunden dann Koordinaten X,Y anklicken....aber auch das scheint nicht zu klappen. Er findet den Button so auch nicht. Er scheint nicht mal die Pixel zu finden...entweder 2 Pixel sind zu ungenau, oder meine Idee ist noch nicht die richtige.

Wenn er 2 Pixel des Buttons gefunden hat müsste er ihn doch finden?
oder gibts da noch ne andre Möglichkeit?
das Game läuft mit javascript wenn ichs recht gesehen habe.
01/21/2014 22:38 alpines#6
Kannst ja eine Toleranz noch dazu hinzufügen wenn man paar Pixel zu weit rechts oder so scannt.
01/21/2014 22:44 Vaysh#7
funktioniert denn Pixelsearch wenn Imagesearch nicht funktioniert?
ne Toleranzgrenze ist beim PixelSearch-Befehl ja eh mit "eingebaut". da dran rumschrauben ändert nix, auch auch das Such-Areal eingrenzen nutzt nix.

...keine ahnung. vielleicht muss ich mich von dem Button verabschieden -.-*
01/22/2014 01:31 flumio#8
Kann gut möglich sein das der Button von einer Lichtquelle erfasst wird, so was hatte ich nämlich auch schon.
Nehmen wir die Sonne, sie dreht sich um den Button, also schauen die Pixel und auch die drumherum jede Sekunde anders aus, evt. auch noch ein Spiegeleffekt.

Sollte dies evt. eintreffen, dann kannst du ImageSearch oder Pixelpattern vergessen, er würde dann z.B. nur zu dem Zeitpunkt anklicken, wo du ihn gemacht hast, da hilft auch die Toleranz nicht mehr.

Mich würde aber mal der Button interessieren, lade mal ein Bild davon hoch.
01/22/2014 15:22 YatoDev#9
Quote:
Originally Posted by flumio View Post
gemacht hast, da hilft auch die Toleranz nicht mehr.
klar
01/23/2014 22:49 Vaysh#10
[Only registered and activated users can see links. Click Here To Register...]

Das ist der Problem-Button.
Das Game ist ein reines 2D-Spiel...kein Licht, keine Bewegungen, die komplette Seite ändert sich zu keiner Zeit.
Er lässt sich aber weder mit PixelSearch noch ImageSearch greifen. Auch nicht, wenn man an der Toleranz spielt :/

Wenn man die Seiteninfos mal ein wenig durchwühlt findet man das hier:
[Only registered and activated users can see links. Click Here To Register...]

Ich bin echt am aufgeben an dem Ding xD alle anderen Buttons funktionieren....nur dieser nicht...nicht als png-Bild oder -jpg, nicht verrößert oder verkleinert, nicht mit Toleranz von 10,50,100,200,...nicht mit PixelSearch, etc.
Hab mir jetzt einfach die Koordinaten übers AutoitInfo-Dings gekrallt und fürs Skript genutzt, aber das ist keine tolle Lösung.
01/23/2014 23:08 alpines#11
Kannst du rechtsklicken und Objekt untersuchen sowie bei Buttons in einer Form z.B.?
01/23/2014 23:14 flumio#12
Tu mal den Button Bereich eingrenzen x, y und überprüfe den Bereich per PixelChecksum, sollte er anschlagen wird meine Theorie richtig sein.

Was für ein Spiel ist das den ? Ich möchte das mal selber ausprobieren, da ich mir nicht vorstellen kann das ImageSearch funktioniert, nur bei diesen einen Button halt nicht
01/27/2014 14:09 .SenSatioNx3'#13
Du musst die ImageSearch.au3 in dein Include ordner im verzeichniss von autoit packen.
Denk daran das du immer #Include <ImageSearch.au3> immer mit einbinden musst eben so muss die ImageSearch.dll immer im gleichen ordner wie deine .exe oder .au3 hast.
Bei #RequireAdmin läuft es bei mir besser also hab ich es mal so gelassen.

Mit F8 Beendest du die Suche
und achte darauf das du Nur teile von deinem Bild hast es darf nicht zu groß sein. Es könnte sein das dein hintergrund sich mal ändert dann wird es auch nicht gefunden. Also immer nur so viel wie der Button ist bisschen kleiner noch vllt.

Dies ist mit MouseClick auf dein Bild.

Bei Problemen schreib mich an biete immer hilfe an

MfG .SSNx3'

Code:
#RequireAdmin
#include <ImageSearch.au3>

HotKeySet("{F8}","_End")

Dim $result, $x, $y

;~ Wenn DEIN_BILD.JPG, .PNG, ... existiert dann soll er weiter machen.
;~ BITTE ERSETZE DEIN_BILD.JPG USW DURCH DEIN BILD NAME!!!

If FileExists(@ScriptDir & "\DEIN_BILD.PNG") Then
	While 1
		$result = _ImageSearch(@ScriptDir & "\DEIN_BILD.PNG",1,$x,$y,1)
			if $result = 1 Then
				MsgBox(0,"Test","BILD GEFUNDEN!")
				MouseClick("left",$x,$y,1,1000)
			ElseIf $result = 0 Then
				Sleep(1)
			EndIf
		WEnd
Else
	Exit
EndIf


Func _End()
	Exit
EndFunc
01/27/2014 15:08 alpines#14
Man sollte ImageSearch nicht verwenden, es gibt viel bessere Methoden und vorallem effizientere um das Problem zu bewältigen.
01/27/2014 20:01 .SenSatioNx3'#15
Ja dann schlag was vor.

Bei mir hat es immer 100000% geklappt ob es in Online games clients wie CrossFire dann aber mit bypass oder internet games man muss nur wissen wie man es anwendet und bei welchem spiel, programm, etc