如何将新应用程序添加到“打开方式”菜单?


52

如何将给定文件类型的应用程序添加到“打开方式”菜单(右键单击后显示),而又不使该文件始终与该应用程序一起打开?

在此特定实例中,我想选择使用TextEdit打开网站位置(.URL)文件,同时仍默认使用Safari。

我正在运行OS 10.7.4。


3
如果程序可以将其打开,则它将自身添加到该菜单中。否则,这意味着它无法打开。
2011年

12
这似乎并不总是正确的。TextEdit可以打开URL,但不在“打开方式”子菜单中。
KatieK 2011年

Answers:


25
  1. 将此添加到CFBundleDocumentTypes数组中/Applications/TextEdit.app/Contents/Info.plist

    <dict>
        <key>CFBundleTypeExtensions</key>
        <array>
            <string>url</string>
        </array>
    </dict>
    
  2. /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -f /Applications/TextEdit.app/

  3. killall Finder
  4. 在Finder中将默认应用程序更改回Safari

如果应用程序已签名,则修改Info.plist 会使代码签名无效。它还使诸如TextEdit和WriteRoom之类的一些应用程序在10.8上启动时崩溃。


1
也许只是我的电脑,但这对我不起作用。执行完此过程(至步骤3)之后,.URL文件的“打开方式”下的TextEdit不可用。同样,修改Info.plist似乎也导致TextEdit在10.7中崩溃。
KatieK 2012年

11
有没有办法使它更笼统?例如,我希望我的十六进制编辑器(当前为HexFiend)可以作为打开所有该死的文件类型的选项,包括那些没有文件扩展名的文件类型……
Steven Lu

@StevenLu:我在BetterTouchTool中创建了Finder快捷方式,以在HexFiend中打开当前选择的文件。
biziclop

11

尝试在Finder中选择文件,然后执行文件>获取信息。从那里您应该可以选择任何应用程序来打开它。一旦在该应用程序中打开了该类型的文件,该文件开始出现在“打开方式”菜单中。

编辑:上面的答案不起作用。替代建议:

我的上一个答案不正确,让我感到很难过,因此我四处搜寻。我从Mac OS X提示中找到了这个技巧:

  • 按住Control键单击(或右键单击)有问题的应用程序,然后选择“显示包内容”
  • 打开应用程序捆绑包中的目录文件夹。在那里您将找到一个名为Info.plist的文件。这是一个XML属性列表,用于存储有关该应用程序的各种信息。
  • 用您喜欢的文本编辑器打开文件。我建议使用Hydra,但TextEdit会很好。
  • 搜索类似于以下内容的内容:

    <key>CFBundleTypeExtensions</key>
    <array>
        <string>txt</string>
        <string>srt</string>
        <string>suffix1</string>
        <string>suffix2</string>
        …
    

    依此类推,只要有足够的能力,应用程序就可以打开标签中包含的内容。然后,您只需删除[ 或添加--newtron ]后缀,以表示您不希望[ 或想要 ]应用程序打开的项目。

  • 保存文件,然后将其关闭(或退出编辑器)。


这似乎不起作用。在“获取信息”中,我可以“打开”与通常相同的应用程序,或选择“其他”。如果选择“其他”,则可以从所有应用程序中进行选择,然后选中或取消选中“始终打开方式”。即使使用TextEditor打开文件一次,它也不会在“打开方式”子菜单中显示为附加选项。
KatieK 2011年

射击,您是对的。我将编辑答案以反映这一点,并用其他建议对其进行更新。
newtron

即使重新启动后,此更新的答案也无法完全靠自己解决。
KatieK 2011年

认为这种方法在雪豹..工作superuser.com/questions/222065/...
瑞安霍林斯沃思

8

newtron的第二个解决方案对我有用,但是仅在我打开Terminal并执行以下命令之后:

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user

重新启动系统后,所需的应用程序位于我的“打开方式”上下文菜单中。

谢谢


如果您要清除列表并重新开始,这也很有用。例如,VMWare Fusion在删除相应的VM时以某种方式将条目放置在孤立的地方。使用此操作清除了不正确的条目
费迪尔

5

除了使用快捷菜单打开文件外,您还可以在按+ 键的同时将任何文件拖到所需的应用程序中。即使认为无法执行,这也会迫使任何应用尝试。我经常用这个。


3

您可以使用Automator将选项添加为服务,然后使用Keyboard Maestro的热键触发该选项。

  1. 打开Automator并选择Service文档类型。
  2. 选择Files and Folders在顶部Service receives selected菜单
  3. 搜索并选择Open Finder Items操作。
  4. 现在选择TextEditOpen with:
  5. 使用您想在菜单中看到的名称保存服务

您现在可以通过以下方式找到它:

  • 右键单击文件>服务

在此处输入图片说明

要么

  • Finder菜单>服务(已选择文件)

在此处输入图片说明

但是您不必在此停下来!

然后,我制作了Keyboard Maestro宏,以便可以使用热键来做到这一点: 在此处输入图片说明

我从以下站点获得了这个想法:http : //www.mactricksandtips.com/2013/05/add-open-with-textedit-or-any-other-app-to-right-click-menu-item.html


这是这样做的好方法,非常感谢!
卢卡斯(Lucas P.)

我一直在使用该服务,但是我忘了创建一个宏来执行此操作。就像重新发现宏一样!
kraftydevil

我以前从未使用过Automator(或者知道它的作用),而您刚刚为我打开了OSX的全新世界:)
Lucas P.

0

newtron解决方案的一项后续措施:

在那里您将找到一个名为Info.plist的文件。这是一个XML属性列表,用于存储有关该应用程序的各种信息。用您喜欢的文本编辑器打开文件。我建议使用Hydra,但TextEdit会很好。

保存文件,然后将其关闭(或退出编辑器)。

如果您的帐户没有正确的权限(我现在正在处理的问题-即使在管理员状态下,您也不会对某些文件和文件夹具有读写权限),则无法保存编辑后的.plist。 )。要将更改保存到.plist文件,您需要授予用户读写权限。

一些默认的Mac应用程序使此操作很难执行,我目前正在寻找一种解决方案(将更新)以使用TextEdit进行此操作。


0

这对我有用:右键单击您的应用程序并转到内容,然后打开/Applications/*****.app/Contents/Info.plist

在Xcode中打开Plist作为SourceCode,然后将其放置:

        <dict>
            <key>CFBundleTypeExtensions</key>
            <array>
                <string>jpeg</string>
                <string>jpg</string>
                <string>png</string>
                <string>gif</string>
            </array>
            <key>CFBundleTypeIconFile</key>
            <string>AutomatorApplet.icns</string>
            <key>CFBundleTypeName</key>
            <string>AutomatorApplet.icns</string>
            <key>CFBundleTypeOSTypes</key>
            <array>
                <string>GIFf</string>
                <string>JPEG</string>
                <string>PNGf</string>
            </array>
            <key>CFBundleTypeRole</key>
            <string>Viewer</string>
        </dict>

我在资源文件夹中有“ AutomatorApplet.icns”。


请添加您尝试通过添加dict条目实现的目标。按照您的答案,它不使用问题中给出的示例(.url)。
klanomath

-3

请访问tech-recipes.com以获取详细说明。正如@Anriëtte指出的,如果该应用程序可以打开特定文件,则应显示在“打开方式”菜单上。


这对我不起作用,因为我不想更改打开文件的默认应用程序。我只想要其他选择。
KatieK 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.