我需要获取以下默认应用程序:防火墙、邮件、Office、防病毒软件。 类似于 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);
}
谢谢!
最佳答案
Mac OS X 没有用于事件或任务的默认程序,但它具有用于 URL 方案和文件扩展名的默认程序。就像您的邮件代码一样,您可以通过查找 http URL 方案的默认处理程序来找到默认的 Web 浏览器。对于媒体播放器,您可以选择 .mp4 或 .mp3 等媒体类型,然后使用 LSGetApplicationForInfo
获取其默认处理程序,但我认为 .mp4 和 .mp3 可能具有不同的默认处理程序。我不知道有什么方法可以找到默认的防病毒程序或防火墙。
标题要求使用 Objective-C 方法,我想可以使用 -[NSWorkspace URLForApplicationToOpenURL:]
而不是 Launch Services 函数。
关于Objective-C 获取默认应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29434188/