
Mac の「開く」メニューにプログラムを追加するにはどうすればよいですか?
答え1
ドキュメントを右クリックしたときに表示されるサブメニューのことですか? そうであれば、アプリケーションが処理できるドキュメントの種類に基づいて、Launch Services によって自動的に生成されます。アプリケーション パッケージ内を見ると (アプリケーションを右クリックして [パッケージの内容を表示] を選択)、Contents フォルダー内に、アプリケーションに関するさまざまな情報 (開くことができるドキュメントの種類の配列を含む) を含む Info.plist ファイルがあります (Apple の開発者向けドキュメントを参照)。ここ)。
TLDR; アプリケーションがそのタイプのドキュメントを処理する場合は、すでにリストされているはずです。そうでない場合は、手動で追加する方法がわかりません。
答え2
変更したいファイルタイプの「情報を見る」ウィンドウを開くと (Ctrl キーを押しながらクリックして「情報を見る」またはファイルを選択した状態で⌘ command+Iを押す)、プログラムを希望のプログラムに変更し、「すべて変更」をクリックできます。これにより、「プログラムから開く」メニューが変更され、Ctrl キーを押しながらクリックして「プログラムから開く」に移動すると、そのアプリケーションが新しいデフォルトであるため、そのアプリケーションが表示されることがわかりました。唯一の欠点は、それをデフォルトにする必要があることです (この後、元に戻そうとしましたが、元に戻りませんでした)。
これは完璧な解決策ではありませんが、私の特定のケースでは十分に機能し、他のケースでも役立つ可能性があり、plist ソリューションよりも簡単で安定しているはずです。
macOS High Sierra 10.13.5 (17F77)
答え3
スクリプト エディタまたは Automator を使用してアプリのドロップレットを作成した場合、ドロップレットを「開く」リストに追加するには、次の操作を行います。
いつものように、変更する予定のアプリ/システム ファイルのバックアップ コピーを保存してください。
-- just in case anything goes wrong
アプリから対象のファイル拡張子配列をコピーします。はアプリの info.plist ファイルの「開く」リストにリストされているものをコピーし、ターゲット アプリの info.plist の CFBundleDocumentTypes 配列に貼り付けます (アプリを右クリックし、「パッケージの内容を表示」を選択)。この例では、
VLC droplet.app
ワイルドカード拡張子 ("*
") データを情報ファイルのいくつかのファイル タイプに置き換えた後の情報ファイルの前後を示していますVLC.app
。
"/Applications/VLC droplet.app/Contents/Info.plist"
:
前に:
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>*</string>
</array>
<key>CFBundleTypeOSTypes</key>
<array>
<string>****</string>
</array>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
</dict>
</array>
後:
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeIconFile</key>
<string>aiff.icns</string>
<key>CFBundleTypeName</key>
<string>AIFF file</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSItemContentTypes</key>
<array>
<string>public.aiff-audio</string>
<string>public.aifc-audio</string>
</array>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>divx</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>movie.icns</string>
<key>CFBundleTypeName</key>
<string>DivX file</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
</dict>
<dict>
<key>CFBundleTypeIconFile</key>
<string>m4v.icns</string>
<key>CFBundleTypeName</key>
<string>MPEG-4 File</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSItemContentTypes</key>
<array>
<string>public.mpeg-4-audio</string>
<string>com.apple.m4v-video</string>
<string>public.mpeg-4</string>
</array>
</dict>
</array>
- ターミナルを開き、以下のコマンドを入力します。info.plist
<TARGET_APP>
を編集するアプリの名前に変更して、「開く」リストに追加します。
/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -f "/Applications/<TARGET_APP>.app/"
- Finder を強制的に再起動するコマンドを入力します
killall Finder
。
アプリケーションが署名されている場合、Info.plistを変更するコード署名を無効にするまた、TextEdit や WriteRoom などのいくつかのアプリケーションは、10.8 で起動するとクラッシュします。
注: この回答の情報の一部を抜粋し、より詳しい情報/説明を加えて編集しました。元のスレッドは次の場所にあります。ここ。