Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign Skriptwerkstatt » Absturz bei Scriptausführung Menü nach Update ID 6.06

Absturz bei Scriptausführung Menü nach Update ID 6.06

-hans-
Beiträge gesamt: 748

23. Feb 2012, 12:05
Bewertung:

gelesen: 2383

Beitrag als Lesezeichen
Guten Morgen,

nach einem Update von ID 6.0 auf 6.06 auf einem Laptop (Win 7) stürzt ID bei Ausführung eines Scripts (ein Snippet wird platziert) aus dem Menü (doScript ...) ab. Gestartet aus der Scripten-Palette funktioniert es wie gehabt.

Das ganze ist etwas schwer nachzustellen, aber vllt. gibt es auch so einen Tipp.

Script das ausgeführt wird:
Code
#target InDesign 

var myFolder = Folder ('~/Dropbox/ZVA/');
var fileList = myFolder.getFiles("*.idms");
var idmsList = [];

for(var f = 0; f < fileList.length; f++)
{
idmsList.push(fileList[f].displayName);
}




main()



function main() {

var theSnippet = myDisplayDialog();

var destDoc = openDestDoc();
placeIdms(theSnippet);
backGroundColorToNone(app.activeDocument.allPageItems);
saveDocAs(theSnippet.replace ("idms", ""));
}


function myDisplayDialog(){
var myDialog = app.dialogs.add({name:"Auswahl Artikel"});
with(myDialog.dialogColumns.add()){
var dropDownList = dropdowns.add({stringList: idmsList, selectedIndex:idmsList.length-1});
}
var myResult = myDialog.show();
if(myResult == true){
var theSnippet = idmsList[dropDownList.selectedIndex];
myDialog.destroy();
}
else{
myDialog.destroy();
exit();
}
return theSnippet;
}


function openDestDoc() {
var myFile = myFolder.getFiles("Muster02.indd");

//Dudenfehlermeldung eliminieren
//app.scriptPreferences.userInteractionLevel = UserInteractionLevels.NEVER_INTERACT;
var theDoc = app.open(myFile, true);
//ScriptPreferences zur&#8730;ºcksetzen
//app.scriptPreferences.userInteractionLevel = UserInteractionLevels.INTERACT_WITH_ALL;

return theDoc;
}


function placeIdms(aSnippet) {
app.activeDocument.pages[0].place(File (myFolder + "/" + aSnippet));
}

function saveDocAs(fName){
app.activeDocument.save(File (myFolder+"/"+fName+"indd"));
}


function backGroundColorToNone(theItemArray){

for(var i=0; i <theItemArray.length; i++){
theItem = theItemArray[i];

if((theItem.constructor.name) == "Group"){
var theGroupArray = theItem.allPageItems;
backGroundColorToNone(theGroupArray)
}

if((theItem.constructor.name) == "TextFrame"){
theItem.fillColor = "None";
}

}
}


Script mit dem der Menüeintrag erzeugt wird:
Code
#targetengine "session" 
main();
function main(){
reporterMenu();
}

function reporterMenu(){

var artikelLaden = app.scriptMenuActions.add("Artikel laden");
artikelLaden.eventListeners.add("onInvoke", aLaden, false);

var artikelExport = app.scriptMenuActions.add("Artikel exportieren");
artikelExport.eventListeners.add("onInvoke", aExport, false);


try{
var SportMenu = app.menus.item("$ID/Main").submenus.item("Sportreporter");
SportMenu.title;
}
catch (myError){
var SportMenu = app.menus.item("$ID/Main").submenus.add("Sportreporter");
}

SportMenu.menuItems.add(artikelLaden);
SportMenu.menuItems.add(artikelExport);


}

function aLaden(){
app.doScript(File('C:\\Program Files (x86)\\Adobe\\Adobe InDesign CS4\\Scripts\\Scripts Panel\\2.1_ReporterArtikelLaden.jsx'), ScriptLanguage.JAVASCRIPT);

}

function aExport(){
app.doScript(File('C:\\Program Files (x86)\\Adobe\\Adobe InDesign CS4\\Scripts\\Scripts Panel\\2.2_ReporterArtikelExport.jsx'), ScriptLanguage.JAVASCRIPT);

}


Hier der Link zu einem Zip das Beispieldateien enthält http://dl.dropbox.com/...20/Musterdateien.zip

Duden ist auch involviert. Deinstallieren brachte aber keine Änderung.

Lieben Gruß

Hans-Gerd Claßen
Lieben Gruß

Hans-Gerd Claßen

Absturz bei Scriptausführung Menü nach Update ID 6.06

Martin Fischer
  
Beiträge gesamt: 12783

23. Feb 2012, 12:15
Bewertung:

gelesen: 2380

Beitrag als Lesezeichen
Hallo Hans,

es ist schon eine Weile her, da beobachteten Quarz und ich Abstürze bei der Ausführung von Skripten aus dem Menü (allerdings erst in CS5).

http://www.hilfdirselbst.ch/..._P454749.html#454749
http://www.hilfdirselbst.ch/..._P455151.html#455151
http://www.hilfdirselbst.ch/..._P486779.html#486779

Ich glaube, Gerald konnte einen entscheidenden Hinweis zum Verursacher und zur Lösung dieses Problems geben:

Zitat von Gerald Löschen Sie die Zeile raus, die den Dialog entfernt, vermutlich "myDialog.destroy()" o.ä.

...

Naja, Vermutung: durch "destroy" muss ID aufräumen und tut das auf eine Art und Weise, die nicht bedenkt, dass durch den Menüaufruf noch andere Sachen später aufgeräumt werden müssen. Sprich: Speicherbereiche sind schon gelöscht, die "afterMenuInvoke" (oder wie das intern heißen mag) noch vorzufinden gedenkt.
Was genau das ist, können aber nur die Entwickler von Adobe sagen.


Viele Grüße
Martin


Absturz bei Scriptausführung Menü nach Update ID 6.06

WernerPerplies
Beiträge gesamt: 2762

23. Feb 2012, 12:26
Bewertung:

gelesen: 2373

Beitrag als Lesezeichen

Absturz bei Scriptausführung Menü nach Update ID 6.06

-hans-
Beiträge gesamt: 748

23. Feb 2012, 12:55
Bewertung:

gelesen: 2348

Beitrag als Lesezeichen
Fürwahr,

ohne myDialog.destroy() geht es! :)

Für eine saubere Lösung muss ich mich später nochmal durch die Threads wühlen ...

Vielen Dank :)
Lieben Gruß

Hans-Gerd Claßen