Schneller Fix von altem Programm

  • Ich hänge es gerne an. Ich bezweifle jedoch, dass das etwas bringt. Ich vermute das exiftool (was auch immer das macht) funktioniert nicht richtig.
    Bei mir kann ich bei den Bildern nämlich ebenfalls keinen Unterschied feststellen.
    Ich weiß nur, dass die übermittelen Daten aussehen, wie sie aussehen müssen.

    Beispiel:

    Spoiler anzeigen

    D:\Desktop\dateien\Patrick\autoit\autoit forum\exiftool\exiftool.exe -m -L -overwrite_original -keywords="becken, becker, lache, pfütze, gewässer, gewässer, bild, foto, schutzbrille, schwimmbrille, amüsement, lustig, lustiger, spaß, spaßig, vergnügen, vergnügung, teenager, schwimmen, sommer, unterwasser, wasser, selbstvertrauen, vertrauen, vertraulichkeit, zutrauen, zuversicht, beenden, hautnah, nah, sackgasse, schließen, zumachen, azul, blau, blauem, blaues, bläuen, depressiv, niedergeschlagen, schwermutig, schwermütig, traurig, traurige, kindheit, anpeilen, daheim, eigenheim, elternhaus, hause, heim, heimat, heimwärts, nachhause, nest, ruhestätte, wohnung, zielen, zuhause, mädchen, bild, erscheinungsbild, image, speicherabbild, lichtreflexe, lichtreflexe, reflektionen, reflektionen, reflexionen, zeit zum spielen" -title="178731845" -description="Girls Underwater Summer Playtime Girls Underwater Swimming Pool Having Fun Summer Playtime" "D:\Desktop\dateien\Patrick\autoit\autoit forum\shutterstock-au3\beispiele\shutterstock_178731845.jpg"

  • Das exiftool ist dafür zuständig die ausgelesenen Keywords in die Datei als Exif-Daten zu speichern (auslesbar z.B. über rechte Maustaste-> Eigenschaften -> Details: Markierungen). Der Pfad der an das Exiftool übergeben wird scheint korrekt zu sein, wenn ich ihn so wie du ihn eingefügt hast bei mir direkt auf das exiftool laufen lassen aktualisiert er die Datei auch richtig. Irgendwo ist der Fehler beim starten des Exiftools.

    Wenn ich dein Beispiel (mit auf meinen Rechner angepassten Pfaden) in die Windows-Befehlszeile eingebe funktioniert alles richtig und er ändert das JPG. Da er ja aber das Script schon selbst erkennt das es nicht funktioniert (weil immer das else $failedPictures eintritt) muss es irgendwie am Programmaufruf des Exiftool liegen. Kannst du dir das vielleicht nochmal anschauen? Gerne können wir auch mal telefonieren, vielleicht macht es die Sache einfacher. Schonmal vielen Dank für deine Bemühungen!

  • Der Fehler muss immernoch irgendwo in deinem Code bei der Übergabe liegen. Da das Programm ja am Ende erkennt das es nicht erfolgreich ausgeführt wurde kann es nicht an Exiftool liegen, da du von dort kein Feedback kriegst ob es richtig geschrieben wurde oder nicht. Testweise habe ich mal nachdem ich den Pfad zum Exiftool angegeben hab das Exiftool gelöscht, das merkt as AutoIt Script noch nichtmal und macht einfach weiter wie bisher. Es stehen immernoch die 50€ aus wenn du Lust hast dich nochmal dahinter zu klemmen.

  • Bei den 3 Beispielbildern von dir bekomme ich keine Fehlermeldung... Es wird mir angezeigt, dass die Bilder erfolgreich bearbeitet wurden und bis auf die Beschreibung wird auch alles bei den Bildern korrekt eingefügt (von dem ExifTool).

    Wobei ich dass mit der Beschreibung nachvollziehen kann... Ich hab mir den Aufbau der Bilder vor und nach ändern der Eigenschaften angeschaut (als ich sie manuell geändert habe). Die Infos werden nach XML-Schema an den Anfang des Bildes gesetzt. Nur die Beschreibung ist dort nicht zu finden. Sie wird demzufolge irgendwo anders gespeichert. Wo habe ich nicht herausfinden können...

    Das prüfen ob das ExifTool vorhanden ist hatte ich deaktiviert, als ich experimentiert hatte, das ganze ohne das ExifTool zu lösen... hab nur vergessen, es wieder zu aktivieren. Für die Funktionalität des Programmes macht das keinen Unterschied (außer man gibt den Pfad nicht an ;))
    (Ich hatte Zeile 101,102,105,111 auskommentiert)

    Ich benutze momentan die AutoIt-Version v3.3.13.10 (Beta).


    Ich müsste genau wissen, ob er bei dir wirklich garnichts einfügt. Wenn bei dir alle Bilder nicht geändert werden wäre es nett, wenn du die Ausgabe am Ende einmal Posten könntest (Die in die Zwischenablage kopiert wird).

  • Das zeigt es bei mir an bei 3 Testbildern:
    Failed: shutterstock_*BILDNUMMER*.jpg
    Failed: shutterstock_*BILDNUMMER*.jpg
    Failed: shutterstock_*BILDNUMMER*.jpg

    *BILDNUMMER* ist von mir eingefügt, da stand der Dateiname der Bilder. Es ändert an den Dateien rein gar nichts, es wird nichts geschrieben.

  • könntest du mir nochmal deine kompilierte Exe zur Verfügung stellen? Vielleicht ist das irgendwo bei mir der Wurm drin. Vielen Dank!

    P.S.: Welche InternetExplorer Version benutzt du?

  • Tut mir leid, aber es funktioniert immernoch nicht. Und ich bleibe bei der Meinung das es am Tool liegt, da es mir ja am Ende die Möglichkeit gibt die fehlerhaften Bilder in die Zwischenablage zu kopieren und dort alle Dateinamen auftauchen. Das es nicht funktioniert hat kann das Tool ja nur wissen wenn der Fehler VOR der Übergabe an das Exiftool auftritt, das Programm kriegt nach der Übergabe ja so oder so keine Rückmeldung vom Exiftool.

  • Ich danke es liegt an deinem Internetexplorer, dass der die Verbindung nicht zulässt. Der Einzige Fall, wo die Bilder angezeigt werden, dass es nicht funktioniert ist der, dass die Internet-seite nicht erreicht wurde. Andernfalls wird das bild nicht als fehlergeschlagen eingetragen.
    Also stimmt entweder der Dateiname nicht, oder der internetexplorer kann nicht auf die seite zugreifen.

    Ums genau zu erklären:

    [autoit]

    $html=_IEDocReadHTML($oIE)
    $ar=_StringBetween($html,'<div id="image_keyword_container" class="section_content secondary_links">','</div>')
    if IsArray($ar) then
    ;...
    else
    $failedPictures&="Failed: shutterstock_"&$shutter_num&".jpg"&@crlf
    endif

    [/autoit]


    Es wird der Quelltext der Internetseite nach <div id="image_keyword_container" class="section_content secondary_links"> gesucht. alles bis zum nächsten </div> wird genommen. Findet er dabei keine Ergebnisse wird das Bild zu den Fehlgeschlagenen Bilder hinzugefügt.