Objective-C获取默认应用程序

Mar*_*usP 2 macos objective-c

我需要获取默认应用程序:防火墙,邮件,Office,防病毒.类似于Windows中存在的东西: 默认Windows程序 我想OSX有类似的东西,可以以编程方式检索.

我设法获得了邮件应用程序,但我不知道如何获得其他人:

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);
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

JWW*_*ker 5

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

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