Mac の「開く」メニューにプログラムを追加するにはどうすればいいですか?

Mac の「開く」メニューにプログラムを追加するにはどうすればいいですか?

Mac の「開く」メニューにプログラムを追加するにはどうすればよいですか?

答え1

ドキュメントを右クリックしたときに表示されるサブメニューのことですか? そうであれば、アプリケーションが処理できるドキュメントの種類に基づいて、Launch Services によって自動的に生成されます。アプリケーション パッケージ内を見ると (アプリケーションを右クリックして [パッケージの内容を表示] を選択)、Contents フォルダー内に、アプリケーションに関するさまざまな情報 (開くことができるドキュメントの種類の配列を含む) を含む Info.plist ファイルがあります (Apple の開発者向けドキュメントを参照)。ここ)。

TLDR; アプリケーションがそのタイプのドキュメントを処理する場合は、すでにリストされているはずです。そうでない場合は、手動で追加する方法がわかりません。

答え2

変更したいファイルタイプの「情報を見る」ウィンドウを開くと (Ctrl キーを押しながらクリックして「情報を見る」またはファイルを選択した状態で⌘ command+Iを押す)、プログラムを希望のプログラムに変更し、「すべて変更」をクリックできます。これにより、「プログラムから開く」メニューが変更され、Ctrl キーを押しながらクリックして「プログラムから開く」に移動すると、そのアプリケーションが新しいデフォルトであるため、そのアプリケーションが表示されることがわかりました。唯一の欠点は、それをデフォルトにする必要があることです (この後、元に戻そうとしましたが、元に戻りませんでした)。

これは完璧な解決策ではありませんが、私の特定のケースでは十分に機能し、他のケースでも役立つ可能性があり、plist ソリューションよりも簡単で安定しているはずです。

情報取得のスクリーンショット

macOS High Sierra 10.13.5 (17F77)

答え3

スクリプト エディタまたは Automator を使用してアプリのドロップレットを作成した場合、ドロップレットを「開く」リストに追加するには、次の操作を行います。

  1. いつものように、変更する予定のアプリ/システム ファイルのバックアップ コピーを保存してください。 -- just in case anything goes wrong

  2. アプリから対象のファイル拡張子配列をコピーします。アプリの 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>
  1. ターミナルを開き、以下のコマンドを入力します。info.plist<TARGET_APP>を編集するアプリの名前に変更して、「開く」リストに追加します。

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -f "/Applications/<TARGET_APP>.app/"

  1. Finder を強制的に再起動するコマンドを入力しますkillall Finder

アプリケーションが署名されている場合、Info.plistを変更するコード署名を無効にするまた、TextEdit や WriteRoom などのいくつかのアプリケーションは、10.8 で起動するとクラッシュします。

注: この回答の情報の一部を抜粋し、より詳しい情報/説明を加えて編集しました。元のスレッドは次の場所にあります。ここ

関連情報