2012-06-04 2 views
0

У меня есть одна конкретная проблема с файловым производителем pro. На Mac установлены оба FMP11 и FMP12. У меня есть сценарий, который делает FMP открытым документом и выполняет некоторую обработку. Скрипт работал до настоящего времени, но новый - это то, что у меня есть как FMP11, так и FMP12 docs. Поэтому я должен открыть соответствующий FMP, чтобы выполнить эту работу. Проблема состоит в том, что они оба зарегистрированы с тем же именем в списке приложений AppleScript, поэтому, если я «скажу Application File Pro Pro Advanced», он строго не определяет, о котором я говорю. Я попытался обмануть проблему, оставив все FMP, а затем открыв фиктивный документ FMP11 или FM12 через Finder, это запустит соответствующую версию FMP, но затем, когда я хочу переключиться на нее с помощью активации, или я использую подсказку для в первый раз после этого, если тот, который открыт, - это FMP11, все работает нормально, если FMP12 открыт, оператор tell откроет FMP11. Самое странное, что в другой упрощенной версии скрипта она работает нормально.использовать заявление заявить заявление с другим именем приложения

Итак, мой вопрос: есть ли другой способ использования приложения tell, а затем зарегистрированное имя приложения?

Я пытался получить свойства для обоих FMP11 и FMP12 и вот результат:

* FMP11

получить свойства процесса нанесения "FileMaker Pro" -> {включено: отсутствует значение, unix id: 63125, файл: alias «MACHD: Приложения: FileMaker Pro 11 Advanced: FileMaker Pro Advanced.app:», тип создателя: «FMP7», subrole: отсутствует значение, все содержимое: {}, выбрано: отсутствует значение , файл приложения: псевдоним «MACHD: Приложения: FileMaker Pro 11 Advanced: FileMaker Pro Advanced.app:», ориентация: отсутствует значение, роль: «AXApplication», принимает события высокого уровня: true, f ile type: «APPL», значение: отсутствующее значение, позиция: отсутствует значение, id: 25741451, Отображаемое имя: «FileMaker Pro Advanced», имя: «FileMaker Pro», класс: процесс приложения, только фон: false, frontmost : false, size: missing value, visible: true, Classic: false, описание роли: «приложение», максимальное значение: отсутствует значение, архитектура: «i386», используемое пространство для раздела: 0, : «FileMaker Pro Advanced», сфокусировано: отсутствует значение, минимальное значение: отсутствует значение, помощь: отсутствует значение, название: «FileMaker Pro Advanced», принимает удаленные события: false, описание: «приложение», общий размер раздела: 0, доступность: отсутствует value, имеет терминологию сценариев: true, идентификатор пакета: «com.filemaker.client.advanced»}

FMP12

получить свойства процесса нанесения "FileMaker Pro" -> {включено: отсутствует значение, UNIX ID: 63199, файл: Alias ​​«MACHD: Приложения: FileMaker Pro 12 Advanced: FileMaker Pro Advanced.app : ", тип создателя:" FM12 ", subrole: отсутствует значение, полное содержимое: {}, выбрано: отсутствует значение, файл приложения: псевдоним" MACHD: Приложения: FileMaker Pro 12 Advanced: FileMaker Pro Advanced.app: ", ориентация: Недопустимое значение, роль: «AXApplication», принимает события высокого уровня: true, тип файла: «APPL», значение: отсутствует значение, позиция: отсутствует значение, id: 25753742, отображается имя: «FileMaker Pro Advanced», имя: «FileMaker Pro ", класс: application process, только background: false, frontmost: false, size: missing value, visible: true, Classic: false, описание роли:" application ", максимальное значение: отсутствует значение, архитектура: «i386», используемое пространство: 0, короткое имя: «FileMaker Pro Advanced», сфокусировано: отсутствует значение, минимальное значение: отсутствует значение, помощь: отсутствует значение, название: «FileMaker Pro Advanced», принимает удаленные события: false , описание: «приложение», общий размер раздела: 0, описание доступности: отсутствует значение, имеет терминологию сценариев: true, идентификатор пакета: «com.filemaker.client.advanced12" } *

Таким образом, кажется, что строка появляется в Словаре редактора Apple Script, это отображаемое имя, краткое имя или название Собственость, но они одинаковы для обоих приложений.

Так как я могу открыть и скажите соответствующую версию FMP, любую идею

+0

Я только что нашел один пост, который обсуждает что-то очень близко к моей проблеме, но я не уверен, если он отвечает, что я должен проверить, вот ссылка http://macscripter.net/viewtopic.php?id=24569 – zsoltmag

+0

Только получил ответ на другом форуме использовать идентификатор пакета в сочетании с идентификатором приложения для FMP 11 сКАЖИТЕ идентификатор приложения «com.filemaker.client.advanced " для FMP 12 сообщить идентификатор приложения" com.filemaker.client.advanced12 " @ http://macscripter.net/viewtopic.php?pid=151957#p151957 – zsoltmag

ответ

0

Try:

do shell script "open -b 'com.filemaker.client.advanced12'" 
tell application (path to frontmost application as text) 
    properties 
end tell 
+0

Спасибо, я только что получил ответ, см. Комментарий к моему ответу, он идет в том же направлении, но использует чисто applescript, который лучше в моем потому что позже в коде мне придется «рассказать» еще раз, а «do shell» не дает мне сказать, но спасибо в любом случае – zsoltmag

+0

Мне также нравится решение Стефана. – adayzdone

0

набор APPNAME для идентификатора текущего приложения в качестве строки

+1

Слишком короткий ответ, который будет полезен. – nalply

0

использования форму tell application id с кодом создателя или идентификатором пакета.

Например, попробуйте следующее:

tell application id "FMP7" 
    activate 
end tell 
+0

Почему этот ответ подавлен? Я использую эту форму все время, так как у меня есть несколько приложений, где я храню несколько версий. – jetset

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