macoscocoalaunch-services

List potential applications that could open a file


Is it possible to get a list of applications installed on the users computer that could be used to open a file (in my case an image), similar to the list shown through the Finder's "Open With..." menu?


Solution

  • Are you looking for a programatic or scripting solution? Programatically, look at Launch Services (LSCopyAllRoleHandlersForContentType() for instance). For scripting, you probably want lsregister which is buried down in

    /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Support
    

    Don't let its location in the docs fool you. It in the Carbon docs, but it's actually CoreServices, which is not deprecated.