ImageSearch funktioniert nicht.

  • 1.)Hab das nun in der .au3 angepasst.


    2.)Anschließende Vergleiche den Fehlerrückgabewert in der Scite console mit denen die in der Hilfe zur Funktion dllCall()

    [autoit]

    Rückgabewert
    Erfolg: @error = 0.
    Fehler: setzt @error
    @error: 1 Die Dll-Datei kann nicht verwendet werden,
    2 unbekannter Rückgabewert "return type",
    3 Funktion "function" wurde in der DLL-Datei nicht gefunden.
    4 Falsche Anzahl von Parametern.
    5 Falscher Parameter.
    siehe Bemerkungen.

    [/autoit]

    aufgelistet werden:

    Ka was genau du meinst, weil...

    3.) rechtsklick ausführen (x86) -> "AutoIt v3 Script funktioniert nicht mehr...Programm schliessen"
    in SciTE -> "AutoIt v3 Script funktioniert nicht mehr...Programm schliessen"

    rechtsklick ausführen (x64) ->

    Status:
    Es konnte keine Übereinstimmung ermittelt werden!

    Das sieht schonmal besser aus, aber irgendwie ka wo da jetzt der harken ist das er nichts finden kann! Und liegt es nun wirklich an der Ausgegebenen Fehlermeldung, also das er nichts findet oder kann der Feler immer noch in der .au3 liegen? Gesucht ist "spic.bmp" welches ein Pixel vom Monitor enthält. Habe den Namen auch im Script angepasst. Hatte eben ein neues Bild gemacht zum Testen, ob was mit dem Bild nicht passt. Gab das selbe Ergebnis.

    Achja und ich habe auch an irgendeiner Stelle gelesen, das es auch Probleme geben kann wegen 64 bit. An etlichen Stellen sogar. Denk aber mal das dir das ohnehin auch bewusst ist? Sags lieber einfach mal. Ne Lösung war aber nirgendswo dabei. An einigen Stellen stand so ca. "Hast pech gehabt geht dann unter Win7 net". Und an anderen stellen haben aber Leute (offensichtlich ja auch hier) gesagt das es bei ihnen so klapptbzw. mir gesagt was genau ich machen soll z.B. $var und Xenon. Xenon sagt es klappt bei ihm (Win7 x64) und $var könnte mir ja auch nicht den Tip geben mit dem Verzeichnis, wenn er es nicht selber schon am laufen gehabt hätte.

    Und warum sollte das dann verboten sein?! Ich "raffe" das nicht ganz. Ist das aus programmiertechnischer Hinsicht "unsauber" oder was ist dafür der Grund? Sry, wenn ich auf dem Schlauch stehe, aber das klingt zunächst einmal recht unlogisch. solange man da keinen Grund für kennt und es sonst nix gibt was dagegen spricht. Gegen welche Forenregel verstösst das denn so zu programmieren?! Kann das nicht eig jedem egal sein?Solange du nix verbreitest, was anderer Leuts Computer beschädigt verstehe ich das jetzt gerade nicht mal im Ansatz!

    Und du machst es wirklich spannend. Solltest nen Buch schreiben! :P

    Wenn man so programmiert wird bestimmt die Formel allen Seins vernichtet?! :rofl:

    6 Mal editiert, zuletzt von Chulio (1. Januar 2014 um 18:55)

  • Ka was genau du meinst, weil...

    3.) rechtsklick ausführen (x86) -> "AutoIt v3 Script funktioniert nicht mehr...Programm schliessen"
    in SciTE -> "AutoIt v3 Script funktioniert nicht mehr...Programm schliessen"

    rechtsklick ausführen (x64) ->

    Status:
    Es konnte keine Übereinstimmung ermittelt werden!


    Wenn du nur ein klein wenig nachdenkst und mal einen Blick auf den Code wirfst den ich dir gegeben habe bzw. die Hilfe zu den von mir verwendeten Befehlen nachschlägst sollte dir klar werden, dass du die Debug Meldung, welche ich eingebaut habe nur in der Scite console sehen kannst. Das Ausführen per Rechtsklick auf die "au3" wird dich als nicht weiter bringen wenn es darum geht den Fehler zu finden. Du musst das Script also in Scite ausführen. Dabei musst du selbstverständlich darauf achten, dass du das Script in 64bit ausführst wenn du eine 64bit DLL verwendest bzw. eben als 32bit Version wenn du eine 32bit DLL verwendest (ansonsten Absturz...).

    Das erzwingt man in dem man eine der folgenden Zeilen an den Scriptanfang setzt

    [autoit]


    #AutoIt3Wrapper_UseX64=N ; 32bit
    #AutoIt3Wrapper_UseX64=Y ; 64bit

    [/autoit]

    Wenn in der console keine Meldung erscheint wird wohl in der Tat nichts gefunden, wenn meine Debug Meldung erscheint, dann solltest du anhand des Fehlercodes des DLL calls den Fehler eingrenzen können.

  • ImageSearch...so läufts dann doch!

    Es läuft nun endlich bei mir!

    Ich habe mir das Ganze erneut wo anders herunter geladen. Habe zwar auch da gelesen, das es nicht laufen soll angeblich...aber nunja. Habs geladen. Stand einiges auch auf deutsch dabei, warum ich mir das Ganze angeschaut hatte. Bin zwar auch nicht viel schlauer geworden dadurch, da die meisten Posts nicht unbedingt hilfreich waren (eher so Sachen wie "bei mir gehts nicht mehr...!!!".

    So aber dann mal zu dem Thema, wie ich es zum laufen bekommen habe.

    1. kurzer Blick in die ReadMe
    2. die ImageSearch.au3 in den Include-Ordner kopiert
    3. die ImageSearchDLL.dll auf "C:\" verschoben also "C:\ImageSearchDLL.dll"
    4. die ImageSearch.au3 geöffnet und in ca. Zeile 37...

    [autoit]

    $result = DllCall("ImageSearchDLL.dll","str","ImageSearch","int",$x1,"int",$y1,"int",$right,"int",$bottom,"str",$findImage)

    [/autoit]


    abgeändert auf...
    $result = DllCall("C:\ImageSearchDLL.dll","str","ImageSearch","int",$x1,"int",$y1,"int",$right,"int",$bottom,"str",$findImage)

    5. die anderen Bilder in dem Ordner "recycle.bmp", "recycle2.bmp"...usw auf den Desktop verschoben! Die Papierkörbe nach ganz oben links!!!

    Dann die ImageSearchDemo.au3 gestartet. So weit so gut. An der Stelle war ich nicht nur einmal angekommen!!! Habe die Demo gestartet und immer weiter geklickt.
    Ende vom Lied war ne MsgBox, die einem sagt das er wieder mal nix gefunden hat.

    6. Einen Blick in die ImageSearchDemo.au3 geworfen
    folgende Zeilen (bei ca 52-60)...

    [autoit]

    $result = _ImageSearchArea("recycle2.bmp",1,0,0,200,200,$x1,$y1,0)
    $result = _ImageSearchArea("recycle.bmp",1,0,0,200,200,$x1,$y1,0)

    [/autoit]


    abgeändert in...

    [autoit]

    $result = _ImageSearchArea("recycle2.bmp",1,0,0,@DesktopWidth,@DesktopHeight,$x1,$y1,0)
    $result = _ImageSearchArea("recycle.bmp",1,0,0,@DesktopWidth,@DesktopHeight,$x1,$y1,0)

    [/autoit]

    Nochmal die Demo gestartet...und siehe da es hat geklappt...habs doch noch hinbekommen...der Witz war....selbst da hatte er mit der Demo noch gesagt er findet nichts...also aufpassen...denn die Maus hat sich am Ende dennoch bewegt! Sprich einfach eigenes Script erstellen und alles sollte laufen.

    Hoffe es hilft noch jemandem! :rock:

    Einmal editiert, zuletzt von Chulio (3. Januar 2014 um 12:36)