Несколько приложений возможно через сервисы запуска, хотите указать конкретное - PullRequest
0 голосов
/ 06 апреля 2010

Вот проблема:

У меня есть список названий приложений, которые я хочу запустить. Они не содержат пути (например, {"VLC", "Microsoft Word"}. У меня есть две разные копии VLC в разных каталогах. Я хотел бы, чтобы Launch Services открывал ТОЛЬКО одну из / Applications /, а НЕ КОГДА-ЛИБО запуска из / Применения / AnotherDirectory

Я хочу получить их путь и проверить, что Launch Services хочет запустить (через bash с «open» или applecript, через «Tell ___ to launch» или [NSWorkspace launch ...])

Единственный способ проверить путь к файлу, который должен быть запущен службами запуска, - это:

Applescript:

tell application "Finder" to return the (posix path of (path to application "VLC" as alias))

Это прекрасно работает, но запускает приложение (которое мне совсем не нужно).

Предложения

Ответы [ 2 ]

0 голосов
/ 06 апреля 2010

Если у вас есть идентификатор пакета приложения, вы можете получить путь к приложению, не запуская его, используя следующий скрипт:

tell application "Finder"
    URL of application file id "org.videolan.vlc"
end tell

Это приводит к следующему выводу в журнале событий:

tell application "Finder"
    get URL of application file id "org.videolan.vlc"
        "file://localhost/Applications/VLC.app/"
end tell
0 голосов
/ 06 апреля 2010

Вы можете использовать LSFindApplicationForInfo(), который «Находит приложение с указанной подписью создателя, идентификатором пакета, именем файла или любой комбинацией этих характеристик».

...