FF_CallScript und FFInclude

Dabei seit
25.01.09
Beiträge
79
Standort
München
#1
Hallo,

ich spiele wieder mal an meinen Scripten herum, um die Automatisierung weiter voran zu treiben. Dabei bin ich auf folgendes Problem gelaufen: Es scheint, dass FFInclude nicht berücksichtigt wird, wenn ich ein Script mit FF_CallScript aufrufe? Vermutlich mache ich aber einfach nur was falsch...

Szenario:
- ich habe eine Reihe von Optimierungen, die ich per JS-Script im Scripting-Bereich drin habe
- wenn aus der UI gestartet, laufen sie problemlos
- wenn per FF_CallScript aufgerufen, führt die erste Referenz auf etwas aus Include auf einen "'xyz' is undefined" Fehler

Ein Beispiel für ein Optimierungsscript ist (man sieht, dass die ganze Funktionalität (SelectImagesBySubString, do_optimize_imagelist) über die beiden Includes reinkommt):

Javascript:
//FFSubmenu=Optimieren
//FFName=Optimieren alle HDRs
//FFInclude=ThomasDaheim\toolbox.js
//FFInclude=ThomasDaheim\optimize\do_optimize_images.js

DEBUG = false;

// Schleife über alle HDRs - unabhängig von der Markierung
var imageList = SelectImagesBySubString(FF_GetSelection(0), ["_enfused.jpg"], Comparison.END);

do_optimize_imagelist(imageList, Optimize.FULL_AUTOCONTRAST);
Wenn ich das per FF_CallScript aufrufen, kommt der Fehler "'Comparison' is undefined / Src: MS JScript runtime error / Line:9".

Da FF_CallScript mit vollständigen Pfaden arbeitet, habe ich auch schon mal versucht, FF_Include mit vollem Pfad zu machen. Das hat aber nicht geholfen.

Für jegliche sachdienlichen Hinweise wäre ich dankbar!
Thomas
 
Dabei seit
25.01.09
Beiträge
79
Standort
München
#2
So, einen ersten Workaround habe ich schon mal gefunden :)

Leider geht ein Test auf "undefined" von Dinge nicht. Also folgender Ansatz:

Vor dem Aufruf setzte ich einen sprechenden Parameter:

Javascript:
FF_SetParam("DO_INCLUDE");
FF_CallScript("ScriptName");
Im Script prüfe ich den und machen bei Bedarf einen manuellen Include:

Javascript:
if (FF_GetParam() == "DO_INCLUDE") {
    // FFInclude not executed - having been called from elsewhere...
    eval(new ActiveXObject("Scripting.FileSystemObject").OpenTextFile("C:\\Users\\thomas\\Documents\\FixFoto\\Script\\ThomasDaheim\\toolbox.js",1,false).ReadAll());
    eval(new ActiveXObject("Scripting.FileSystemObject").OpenTextFile("C:\\Users\\thomas\\Documents\\FixFoto\\Script\\ThomasDaheim\\optimize\\do_optimize_images.js",1,false).ReadAll());
}
Funktioniert wenigstens schon mal...
 

m.s

FF-Team
Mitarbeiter
Dabei seit
19.09.02
Beiträge
11.179
#5
Schick mir ne PN mit gewünschtem Usernamen und E-Mail. Ich richte dir dann ein Konto ein.
 

Mecki14

Mitglied
Dabei seit
15.03.06
Beiträge
2.565
Standort
Düsseldorf
Trophäen
*!
#7
Hallo Thomas,
schön das durch dich der kleine Kreis der Aktiven bei der Skripting-Wiki ein wenig erweitert wird.
 
Oben