2016-05-18 3 views
0

У меня есть сценарий на компьютере с несколькими версиями Photoshop, который ищет любую открытую версию Photoshop (в данном случае CS6) и сохраняет имя как переменную с именем AppName.Applescript ломается, когда имя приложения является переменной?

Это, кажется, работает нормально для проверки «Если AppName работает», но позже в сценарии у меня есть «сказать приложение ...» и когда я начинаю делать вещи там внутри, я получаю ошибку 1728.

Пример: у меня открыто CS6 и одно изображение открыто.

tell application AppName 
    log count documents 
    log file path of document 1 
end tell 

Это будет генерировать

(*1*) 
(*Adobe Photoshop CS6 got an error: Can't get path. - -1728*) 

Он отлично работает, если я просто ввести «Adobe Photoshop CS6» или «com.adobe.photoshop», но по разным причинам, я не могу сделать это и нужно, чтобы он оставался переменной.

У кого-нибудь есть идеи? =/

ответ

0

Аргумент tell application должен быть литеральной строкой (константой), поскольку терминология оценивается во время компиляции.

Единственный способ оценить AppleScript терминологию рядом tell application является блок-using terms from часто используется в обработчиков событий, например

using terms from application "Adobe Photoshop CS6" 

end using terms from 

но это требует также константа в качестве аргумента. Реализация зависит от контекста.

Смежные вопросы