_imagesearch problem

  • Hallo!
    ich habe ein problem mit der imagesearch funktion,ich habe echt jeden beitrag bereits durchgelesen und finde einfach keine lösung.
    ich möchte ein bild das auf dem desktop ist mit einem bild das ich in einem ordner gespeichert habe vergleichen.
    in meinem fall ist es der papierkorb.
    ich habe die imagesearch.au3 in den include ordner gezogen.
    habe das bild,das programm,die imagesearch.dll im selben ordner.(hatte die dll auch im windows/system32 ordner)
    zum bild: ich habe einen screenshot gemacht mit paint den papierkorb ausgeschnitten und den ausschnitt neu eingefügt und als leer.bmp gespeichert.habe es auch probiert das bild als .gif,.png zu speichern und verschiedene programme zum öffnen benutzt(windows bild media anzeige und paint)
    ich habe das programm auch als administrator ausgeführt(windows7).

    aber er findet das bild einfach nie oder gibt eine fehlermeldung aus.
    fehler:

    Spoiler anzeigen

    >"C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "C:\Users\Georg\Desktop\image\einfachesuche.au3" /autoit3dir "C:\Program Files (x86)\AutoIt3" /UserParams
    +>01:28:45 Starting AutoIt3Wrapper v.2.0.0.3 Environment(Language:0407 Keyboard:00000407 OS:WIN_VISTA/ CPU:X64 OS:X64)
    >Running AU3Check (1.54.19.0) from:C:\Program Files (x86)\AutoIt3
    +>01:28:45 AU3Check ended.rc:0
    >Running:(3.3.6.1):C:\Program Files (x86)\AutoIt3\autoit3_x64.exe "C:\Users\Georg\Desktop\image\einfachesuche.au3"
    C:\Program Files (x86)\AutoIt3\Include\ImageSearch.au3 (40) : ==> Subscript used with non-Array variable.:
    if $result[0]="0" then return 0
    if $result^ ERROR
    ->01:28:45 AutoIT3.exe ended.rc:1
    +>01:28:46 AutoIt3Wrapper Finished
    >Exit code: 1 Time: 1.449


    code:

    Spoiler anzeigen

    #include <ImageSearch.au3>

    $x=0

    $y=0

    Global $result;

    #Region einfache suche

    $res=_imagesearch('leer.bmp',1,$x,$y,100)

    If $res = 1 Then

    MouseMove($x,$y,100)


    EndIf

    über eine hilfe würde ich mich wirklich sehr freuen.

    (entschuldigt falls der beitrag ein wenig seltsam aussieht...is mein erster)

    mfg georg

  • Hallo gege303


    Beim Imagesearch musst du Toleranz angeben.

    Wenn du damit rumprobierst, wirst du sicher ien Ergebnis bekommen.

    Schau die einfach mal die ImageSearch.au3 datei an. Da wird es beschrieben.


    Gruss Roger

  • habe doch eine toleranz mit 100 angegeben.
    #AutoIt3Wrapper_UseX64 = n habe ich auch hinzugefügt.hat sich aber nix verändert:(((

    hier nochmal der neue code und die fehler:

    Spoiler anzeigen

    #AutoIt3Wrapper_UseX64 = n

    #include <ImageSearch.au3>
    global $x=0
    global $y=0
    global $result
    #Region einfache suche
    $res=_imagesearch('leer.bmp',1,$x,$y,100)
    If $result = 1 Then
    MouseMove(0,0,100)
    else
    mousemove(100,100)

    EndIf

    Spoiler anzeigen

    Linie 40 (file''C:user\georg...

    if $result[0]="0"then return o

    if $result^ERROR


    Error:Subscript used with non-Array variable.

    Spoiler anzeigen

    >"C:\Program Files
    (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod
    /ErrorStdOut /in "C:\Users\Georg\Desktop\image\einfachesuche.au3"
    /autoit3dir "C:\Program Files (x86)\AutoIt3" /UserParams

    +>13:56:17 Starting AutoIt3Wrapper v.2.0.0.3 Environment(Language:0407 Keyboard:00000407 OS:WIN_VISTA/ CPU:X64 OS:X64)

    >Running AU3Check (1.54.19.0) from:C:\Program Files (x86)\AutoIt3

    +>13:56:17 AU3Check ended.rc:0

    >Running:(3.3.6.1):C:\Program Files (x86)\AutoIt3\autoit3_x64.exe "C:\Users\Georg\Desktop\image\einfachesuche.au3"

    C:\Users\Georg\Desktop\image\ImageSearch.au3 (40) : ==> Subscript used with non-Array variable.:

    if $result[0]="0" then return 0

    if $result^ ERROR

    ->13:56:17 AutoIT3.exe ended.rc:1

    +>13:56:18 AutoIt3Wrapper Finished

    >Exit code: 1 Time: 1.428

    weiss echt nimmer was ich machen soll((((
    vl wisst ihr was,danke für die hilfe.
    lg

  • Bei mir funktioniert es wenn ich:

    - Die .dll im C:\Windows\SysWOW64 Ordner habe
    - Die Include-Datei im Include Ordner habe(Kann bestimmt auch wo anders liegen)
    - Das Bild im selben Verzeichnis (Kann aber bestimmt auch wo anders liegen)
    - Und nicht mit F5 ausführe sondern die Datei speicher und Rechtsklick auf die Datei(.au3) -> Run Script (x86)

    Mfg
    monkey

    Monkey - die finale Potenz von göttlich!
    Sloganizer

  • - Die Dll muss im Sytsem Verzeichnis oder im Script Verzeichnis liegen
    - Das Script muss als 32 Bit Version laufen
    - Der Pfad zum Bild sollte vollständig sein, ich weiß nicht, ob sonst im Verzeichnis der include Datei, im Verzeichnis des Skripts oder im DLL Verzeichnis gesucht wird

  • #AutoIt3Wrapper_usex64=n
    habe ich am anfang stehn.. hier der code

    Spoiler anzeigen

    #AutoIt3Wrapper_UseX64 = n

    #include <ImageSearch.au3>
    global $x=0
    global $y=0
    global $result
    #Region einfache suche
    $res=_imagesearch('C:\Users\Georg\Desktop\image.bmp',1,$x,$y,100)
    If $result = 1 Then
    MouseMove(0,0,100)
    else
    msgBox(2,"nix","nix")

    EndIf


    es wird immer nur die msg box ausgespuckt

  • Du benutzt eine flasche Variable.

    [autoit]

    #include <ImageSearch.au3>
    Global $x = 0
    Global $y = 0

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

    #region einfache suche
    $res = _imagesearch('C:\Users\Georg\Desktop\image.bmp', 1, $x, $y, 100)

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

    If $res = 1 Then;Hier hattes du die Variable $Result benutzt
    MouseMove(0, 0, 100)
    Else
    MsgBox(2, "nix", "nix")
    EndIf

    [/autoit]

    Mfg
    monkey

    Monkey - die finale Potenz von göttlich!
    Sloganizer

  • hmmm
    ich check das nicht.
    wenn er das bild gefunden hat dann kriegt die variable res ja die 1 und der mousemove befehl müsste ausgeführt werden ,wenn ers nicht findet die 0
    das müsste doch passen oder?

    kannst du mir den code berichtigen?
    lg

  • ich habe einen äußerst banalen fehler mit paint gemacht....

    das weisse blatt war mit drauf, deswegen hat er das bild nie erkannt...

    vielen dank für eure bemühungen das is echt ein super forum

    dank an alle