Einfache ImageSearch Lösung für x64 System

  • @oernzz
    Nö, scheint nicht so. Zumindest wird die Variable nicht an ImageSearch im oberen Skript übergeben.


    @TE
    Eigentlich dürfte es komplett irrelevant sein was für Dateien du öffnest. Daher wundere ich mich umso mehr wieso dein Skript nun läuft wenn du der Variable einfach einen festen String zuweist. Ich bin ratslos... Versuchen wir's mal anders.

    Welches Betriebssystem nutzt du?
    Welche AutoIt Version nutzt du?

    Und am besten wäre noch ein komplettes Beispiel mit allen nötigen Daten zur Ausführung in einem ZIP-Archiv.
    Sprich: Alle Bilder, sowie auch deine ImageSearch UDF + der DLL. Natürlich auch das Skript dazu...

  • Ich habe mal ein ZIP Erstellt mit den Dateien, das Skript habe ich aber verkürzt, da ich mit Pixelsearch arbeite und wenn du die Button oder Symbole nicht hast auf die ich Ziele wird es schwer das nachzubauen.

    Das angehangene au3 ist simpel. F4 Drücken und eine Datei (CSV) wählen, danach stürzt er bei mir direkt ab weil ich die Imagesearch eingebaut habe.

    Edit:

    Windows 7 x64 Home Premium (Laptop)
    Windows 7 x64 Enterprise (Desktop)

    Das Problem ist auf allen Rechnern gleich.

  • Scheint wohl nicht so trivial zu sein ?

    Vielleicht machen wir es anders...

    Könnt ihr mir ein Beispiel Code nennen, mit dem ich ein Menü bekomme, von dem aus ich die CSV auswählen kann ?
    So das ich den Pfad nicht hart in das Skript mit einfügen muss.

  • Sorry dass ich nicht eher geantwortet habe. Also:
    Du benutzt eine x64 DLL, aber AutoIt startet automatisch als x86 Anwendung.
    Setzt du in die erste Zeile deines Skriptes ein #AutoIt3Wrapper_UseX64 = Y erhälst du den Error nicht mehr:

    Code
    "C:\Users\Cederik\Downloads\ImageSearch-temp\ImageSearch.au3" (44) : ==> Subscript used on non-accessible variable.:
    if $result[0]="0" then return 0
    if $result^ ERROR
  • Danke, aber leider hab ich damit auch kein Erfolg.

    Ich habe die zeile mal in das test Skript eingefügt aber leider läuft das bei mir noch immer auf Fehler.

    Ich sehe im Taskmanager das die AutoIt3_x64.exe (im 64 bit Modus) gestartet wird, egal ob ich Y oder N zu dem Befehle sage.
    Daher kann man eigentlich davon ausgehen das mein Skript auf jedenfall immer in 64 Bit läuft.

    Im Anhang das selbe Skript noch mal nur mit der Zeile. Ist das zu 100% mit deinem Skript identisch ?

  • Mal eine Gegenfrage: Reden wir eigentlich immer noch über den if $result^ ERROR Fehler?
    Das da ein paar Syntax Fehler in der ImageSearch drin sind mit der die Version 3.12.0.0 nicht ganz klar kommt weiß du oder?
    Sobald du diese nämlich ausgebessert hast (lediglich paar Leerzeichen setzen) dürfte das eigentlich laufen.
    Deswegen verstehe ich nicht wieso das bisher bei dir noch nicht funktioniert.

    Spoiler anzeigen
  • Hi :)

    Ja wir reden noch über den Fehler. Eigentlich hatte ich den Syntax per Tidy schon aufgeräumt. Kann aber sein das, durch das viele Probieren, ich wieder die Orginaldatei angehangen habe.

    Ich konnte den Fehler eingrenzen. Es scheint an der CSV zu liegen, sobald ich meine Daten in deine CSV kopiere funktioniert das Skript. Nutze ich eine von meinen CSV geht es nicht.
    Meine CSV sind mit Excel 2010 erstellt. Aber auch wenn ich mit Windows 7 x64 Home Premium eine txt erstelle und die dann als CSV umbenenne geht es nicht.
    Ich habe eine mit Excel 2013 erstellt CSV versucht, aber habe das selbe Ergebnis.
    Wie hast du die CSV erstellt ?

    Ich habe mal meine CSV Abgehangen, gehen die bei dir ?

  • Sorry, dann bin ich ratlos. Bei mir funktionieren beide CSV Dateien problemlos. Weshalb dir da die ImageSearch abschmiert ist mir ein Rätsel, eigentlich stehen die Dateien sowie das Bild was geladen wird doch in keinem Zusammenhang. Nicht mal die Bitmap wird im Skript via FileOpen geöffnet. Demnach ist das ein Ding der Unmöglichkeit, der Error kann und darf eigentlich nicht auftreten. :S

    Ich kann dir allerdings anbieten mit dir einen anderen Lösungsansatz zu erarbeiten. ImageSearch ist sowieso nicht die optimale Lösung. Mehr kann ich nicht tun. ^^

  • Schade, ich dank dir aber auf jeden Fall für die Mühen.
    Das Skript läuft im Moment sehr Erfolgreich, von daher kann man das hier auf Erledigt stellen.
    Ich werd an die csv vielleicht noch mal mit einem HEX viewer ran gehen oder so, sonst bin ich auch ratlos.

    Dennoch bin ich interessiert was für Möglichkeiten ich sonst noch habe, da die Umgebung hier recht limitiert ist.

    Edit:

    Ich konnte den Fehler noch etwas eingrenzen. Meine CSV Dateien funktionieren auch wenn Sie im skriptordner liegen. Außerhalb des Skriptordners bekomme ich den Fehler (deine CSV hört außerhalb des Skriptordners auch auf zu funktionieren).. hmmm

  • Danke,

    magst du mir kurz sagen wie ich das WorkingDir entsprechend setze ? das habe ich bislang nie machen müssen.

    Edit:

    [autoit]

    FileChangeDir(@ScriptDir)

    [/autoit]


    Hat anscheinend geholfen. Ich teste mal weiter

    Edit2:
    Also Danke noch mal an euch beiden das hat super geklappt.
    Eine Sache noch, leider habe ich weiterhin Probleme das Skript vom Netzwerk Share aufzumachen.
    Ich denke der Fehler liegt auch an dem Working dir, habe aber noch nicht ganz verstanden wohin ich das am besten biegen soll ?

    Edit3:
    Also wenn ich das Skript als EXE (64 Bit) Kompiliere geht es wenn ich

    [autoit]

    FileChangeDir(@ScriptDir)

    [/autoit]


    Direkt nach dem öffnen des CSV einsetze und die exe vom Netzwerk Share starte.
    Bin etwas verwirrt.

    Ich glaube ich muss noch viel lernen :(