Почему не работает app.activeScript?

  • Автор темы Автор темы dklimov
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

dklimov

Участник
Топикстартер
Сообщения
13
Реакции
0
Уважаемые форумчане! Вот такая задачка. Есть скрипт. Пользователи запускают его из меню которое генерируется другим скриптом. Для загрузки параметров из файла который лежит в вместе с запускаемым скриптом, хочу использовать приведенную ниже конструкцию. НО!!! Она, почему-то работает только в том случае, если скрипт запускать из свитка сценариев. При запуске через сгенерированное меню скрипт запускается, но данная конструкция не работает.
try {
var myScript = app.activeScript;
} catch(e) {
var myScript = File(e.fileName);
}
myParentFolder = File(myScript).parent; //Путь к скрипту

Вот скрипт который генерирует меню. Возможно дело в нем.
// Листинг
#targetengine "session"
//An InDesign CS3 JavaScript
//Adds an item to the Edit menu

if (app.menus.item("$ID/Main").submenus.item("Новое меню") !=null) {
app.menus.item("$ID/Main").submenus.item("Новое меню").remove()};
var mySampleScriptAction1 = app.scriptMenuActions.add("Пункт в меню");


var myEventListener1 = mySampleScriptAction1.eventListeners.add("onInvoke", runScriptFile1, false);

var myMainMenu = app.menus.item("Main");
var myFileMenu = myMainMenu.submenus.add("Новое меню");
var myFileMenu = myMainMenu.menuElements.item("Новое меню");
var myMenuItem = myFileMenu.menuItems.add(mySampleScriptAction1);


function runScriptFile1()
{

var file = File("C:\\Program Files\\Adobe\\Adobe InDesign CS3\\Scripts\\Scripts Panel\\Samples\\irr_alm.jsxbin");
if (!file.exists) {
alert("script "+path+" does not exist");
} else {
file.open("r");
var scriptStr = file.read();
file.close();
eval(scriptStr);
}
}
 
Ответ: Почему не работает app.activeScript?

myParentFolder = myScript.parent; //Путь к скрипту
 
Ответ: Почему не работает app.activeScript?

Опытным путем выяснил, что дело все-же в скрипте для добавления пунктов в меню, а не в самом расположении файлов со скриптами. Что можно сделать?
 
Ответ: Почему не работает app.activeScript?

Разбираться с вашим скриптом некогда, просто сделаю предположение. Раз скрипт работает если его запускать из палитры, значит всё с ним в порядке, а при запуске из другого места нужно явно указывать с каким приложением он работает. Например скрипты на vbs требуют с самого начала указывать приложение, поэтому им по-барабану откуда они вызываются, хоть по сети с другого компа. Может в этом дело?
 
Статус
Закрыто для дальнейших ответов.