2015-04-03 104 views
1

我需要获取以下应用程序的默认应用程序:防火墙,邮件,办公室,防病毒。 类似于Windows中存在的东西: Default Windows Programs 我想有类似的OSX的东西,可以以编程方式检索。Objective-C获取默认应用程序

我设法让邮件应用程序,但我不知道如何让别人:

CFURLRef mailURL = CFURLCreateWithString(kCFAllocatorDefault, CFSTR("mailto://"), NULL); 
CFURLRef mailAppURL = NULL; 
OSStatus ret = 0; 
if((ret = LSGetApplicationForURL(mailURL, kLSRolesAll, NULL, &mailAppURL)) == 0) { 
    CFStringRef path = CFURLCopyFileSystemPath(mailAppURL, kCFURLPOSIXPathStyle); 
} 

谢谢!

回答

4

Mac OS X没有用于活动或任务的默认程序,但它具有用于URL方案和文件扩展名的默认程序。就像您使用邮件的代码一样,您可以通过查找http URL方案的默认处理程序来找到默认的Web浏览器。至于媒体播放器,你可以选择媒体类型,如.mp4或.mp3,然后使用LSGetApplicationForInfo获得其默认处理程序,但我想有可能.mp4和.mp3具有不同的默认处理程序。我不知道找到默认的防病毒程序或防火墙的方法。

标题要求Objective-C方法,我想可以使用-[NSWorkspace URLForApplicationToOpenURL:]而不是启动服务功能。

+0

谢谢,它工作! – MariusP 2015-04-05 11:45:17