【发布时间】:2009-12-29 12:30:22
【问题描述】:
我正在使用以下代码来获取应用程序的路径。它适用于所有情况,但不适用于前排。
CFStringRef cfStrAppShortName = NULL;
FSRef appRef;
CFURLRef cfAppUrlRef = NULL;
CFBundleRef cfAppBundleRef = NULL;
CFDictionaryRef cfAppDictRef = NULL;
CFStringRef cfStrAppBundleName = NULL;
OSErr osErr;
cfStrAppShortName = CFSTR(Front Row);
if(cfStrAppShortName != NULL)
{
osErr = LSFindApplicationForInfo(kLSUnknownCreator,NULL,cfStrAppShortName,&appRef,NULL);
if(osErr == noErr)
{
cfAppUrlRef = CFURLCreateFromFSRef ( kCFAllocatorDefault, &appRef);
cfAppBundleRef = CFBundleCreate (kCFAllocatorDefault,cfAppUrlRef);
cfAppDictRef = CFBundleGetInfoDictionary (cfAppBundleRef);
cfStrAppBundleName = (CFStringRef)CFDictionaryGetValue (cfAppDictRef,kCFBundleNameKey);
}
我期待来自 Applications 文件夹的应用程序路径,但它来自 /system/coreservices/..
这发生在 /system/library/coreservices/.. 中的所有项目上。
是否有任何不应该查看 /system/library/coreservices.. 或任何更好的解决方案? 谁能帮帮我?
提前致谢。
【问题讨论】:
-
您遇到了什么具体问题?是没有找到应用程序,还是返回了您不期望的路径?
-
它的路径。在 System/Library/CoreServices/.. 中有一个 FrontRow.app,它也存在于 /Applications/.. 路径中。我期待 /Applications/Front Row,但它给了我 System/Library/CoreServices/Front Row
标签: macos macos-carbon