[HOWTO] ImageSearch - Funktion in VB nutzen

07/13/2010 23:19 xmanix#1
Zuerst müsst ihr die Datei ImagSearch.dll herunterladen (siehe Anhang) und im /bin/debug Ordner eures Projektes ablegen oder auch in "C:\\Windows\System32".

Danach müsst ihr folgenden Code zu eurem Projekt (am Besten in einem Modul) hinzufügen.


Quote:
<DllImport("ImageSearchDLL.dll")> Public Function ImageSearch(ByVal x1 As Integer, ByVal y1 As Integer, ByVal right As Integer, ByVal bottom As Integer, ByVal findImage As String) As String
End Function
Function ImageSearch(ByVal Bild As String, Optional ByVal Mitte As Boolean = True) As Point
Dim Bild2 = Bild

If Not IO.File.Exists(Bild) Then
MessageBox.Show("Die Datei " & Bild2 & "konnte nicht gefunden werden. Das Programm wird beendet.")
End
End If
If Toleranz > 0 Then Bild = "*" & Toleranz & " " & Bild
Dim x As String = ImageSearch(a.WinGetCaretPosX(), a.WinGetCaretPosY(), a.WinGetCaretPosX() + a.WinGetClientSizeWidth(Fenstername), a.WinGetCaretPosY() + a.WinGetClientSizeHeight(Fenstername), Bild)

If x = "0" Then
MessageBox.Show("Das Bild " & Bild2 & " konnte nicht auf dem Bildschirm gefunden werden. Das Programm wird beendet.")
End
Else
Dim y = x.Split("|")
If Mitte = True Then
Return Point.Subtract(New Point(y(1), y(2)), New Size(y(3) \ -2, y(4) \ -2))
Else
Return New Point(y(1), y(2))
End If
End If
End Function
Handhabung:

Quote:
Dim p as Point = ImageSearch("Bild.png")
Falls die Koordinaten der linken oberen Ecke des gefundenen Bildes benötigt werden:

Quote:
Dim p as Point = ImageSearch("Bild.png",True)

Die Koordinaten können dann z.B. folgendermaßen aufgerufen werden:
Quote:
Messagebox.Show(String.Format("X: {0} Y: {1}",p.X,p.Y))
07/14/2010 00:14 antihackers#2
ein einfaches Copy und past tut erklär mal was man genau macht was die codes bedeuten usw
07/14/2010 00:33 xmanix#3
Copy und Paste... Stimmt... aber aus dem sourecodes meines Shoperstellbots^^
07/14/2010 17:19 xlx00xlx#4
was ist imagesearch^^?
07/15/2010 21:51 xmanix#5
Die ImagSearch - Funktion sucht den Bildschirm nach den angegebenen Bild ab und liefert dann die Koordinaten dieses Bildes zurück.
07/16/2010 03:05 Avarius210#6
Leider wurde hier nichts erklärt...
Wäre schön für die Anfänger, die das noch nicht so lesen können, den Code zu erklären.

P.S.: ImageSearch ist eine nette Sache ;D
07/16/2010 21:59 xmanix#7
da gibts auch net viel zu erklären^^
man muss nuss nur die autoitx dll einbinen (-> suchfunktion) und dann kann man schon auf die gefundenen koordinaten klicken
07/18/2010 15:52 Jay Niize#8
geht das auch, wenn das programm das bild gefunden hat, das er z.B doppelklick macht?
07/18/2010 21:09 xmanix#9
also erstens die autoitx dll einbinden (siehe[Only registered and activated users can see links. Click Here To Register...]

und dann einfach folgenden code benutzen

Quote:
Dim AutoIt As New AutoItX3Lib.AutoItX3
Dim p as Point = ImageSearch("Bild.png",True)
AutoIt.MouseClick("Left",p.X,p.Y,2)


07/24/2010 11:49 Jay Niize#10
hoffe mal das wird was!

#Added to List
12/15/2010 13:35 Macan97#11
danke das hab ich schon gesucht
09/21/2011 21:40 yuri1983#12
Hallo Leute,
ich bin gerade auf dieses interessante Thema gestoßen,
da ich noch ziemlich neu in VB bin wollte ich mal was Fragen.

Ich arbeite mit VB 2008 und habe wie beschrieben denn Code in ein Modul eingefügt, aber da hat dann VB was zu meckern.

Er gibt mir Fehler aus,
wie zum Beispiel:

Fehler 5 Der Name "Toleranz" wurde nicht deklariert

Fehler 11 Der Name "Fenstername" wurde nicht deklariert

Fehler 7 Der Name "a" wurde nicht deklariert

Da ich nicht weiß was und wie das alles verwendet wird bzw.
in welcher Form ich das deklarieren soll.

Wollte ich hier mal nachfragen ob jemand damit schon gearbeitet hat,
und ob er mir das erklären kann.

Thanks werden dann natürlich auch verteilt,
eure Hilfe soll ja nicht um sonst sein.
08/01/2012 17:40 Sinlyu#13
kann mal jemand einen funktionirenden Code Posten ;/
04/09/2014 16:54 ax5#14
I'm having problems with this
04/09/2014 23:46 ​Tension#15
Would be helpful if you would post the picture in a higher resolution. ( epvpimg.com )