2015-04-03 78 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