Как установить приложение по умолчанию для определенных типов файлов в Mac OS X? - PullRequest
6 голосов
/ 07 февраля 2012

В Mac OSX lion я пытаюсь установить приложение по умолчанию для определенных типов файлов.Используя приведенный ниже скрипт Apple, мы можем установить приложение по умолчанию для определенного файла "file.abc".

tell application "System Events"
set default application of file "/Users/test/Desktop/file.abc" to "/Applications/TextEdit.app"
end tell

Но я хочу установить то же приложение по умолчанию для всех файлов, имеющих тип файла или расширение, как"abc".

Я попытался сделать следующее.Добавлена ​​запись в <HOME>/Library/Preferences/com.apple.LaunchServices.plist.Но файлы не открываются с помощью указанного приложения.

defaults write com.apple.LaunchServices LSHandlers -array-add "<dict><key>LSHandlerContentTag</key><string>abc</string><key>LSHandlerContentTagClass</key><string>public.abc</string><key>LSHandlerRoleAll</key><string>com.apple.textedit</string></dict>"

Надеюсь, кто-то знает, чего мне не хватает для его достижения.


Ответ найден:

defaults write com.apple.LaunchServices LSHandlers -array-add "<dict><key>LSHandlerContentTag</key><string>ugurugu</string><key>LSHandlerContentTagClass</key><string>public.filename-extension</string><key>LSHandlerRoleAll</key<string>org.videolan.vlc</string></dict>"
/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user

Ответы [ 3 ]

5 голосов
/ 07 февраля 2012

Возможно, вы ничего не делаете неправильно, но файл com.apple.launchservices просто необходимо перезагрузить.Вы можете выйти из системы, подождать несколько минут или принудительно перезапустить службы запуска.В следующем примере я говорю, что текстовые файлы public.comma-отделенные значения-значения (примечание: это не означает, что каждый CSV-файл имеет этот тип содержимого) должны открываться с помощью TextEdit вместо Excel.

do shell script "defaults write com.apple.LaunchServices LSHandlers -array-add '{ LSHandlerContentType = \"public.comma-separated-values-text\"; LSHandlerRoleAll = \"com.apple.TextEdit\"; }'"

do shell script "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user"
1 голос
/ 07 февраля 2012

Я не уверен, что вы пытаетесь сделать это только программно.Вы?

В противном случае:

В файле выберите «получить информацию» и в разделе «Открыть с помощью» выберите название приложения.Нажмите на кнопку «Изменить все»

0 голосов
/ 03 декабря 2015

Возможно, вы захотите взглянуть на RCDefaultApp и его исходный код.Это программа, которая позволяет указать, какие типы файлов открываются и какими приложениями в Launch Services.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...