Ich versuche eine Liste von Anwendungen zu bekommen, die einen Dateityp öffnen können. Bis jetzt konnte ich den Namen einer einzelnen Anwendung mit NSWorkspace
's getInfoForFile:application:type:
Methode erhalten.
Gibt es eine API, die ich aufrufen kann, um eine Liste von Anwendungen zu erhalten, die eine Datei öffnen können?
Ich glaube, dass Sie Launch Services verwenden müssen, um eine Liste zu erhalten. LSCopyApplicationURLsForURL "Sucht alle bekannten Anwendungen, die zum Öffnen eines durch URL angegebenen Elements geeignet sind."
Scheint, wenn Sie eine Datei-URL übergeben, sollten Sie Ihre (CFArrayRef) Liste von Anwendungen erhalten.
Zukünftig war ich daran interessiert, eine Liste von Anwendungen zu erhalten, die einen bestimmten Dokumenttyp öffnen können. Die akzeptierte Antwort zeigte in die richtige Richtung, war aber keine vollständige Lösung, da LSCopyApplicaionURLsForURL
und sein Geschwister LSCopyAllRoleHandlersForContentType
eine Bündelkennung zurückgeben, nicht die Anwendung selbst. Daher brauchte ich noch die Anwendung:
Unten ist der Code, den ich verwendet habe, um alle diese Informationen abzurufen:
%Vor%