次のコードを使用して、アプリケーションのパスを取得しています。すべての場合に機能しますが、最前列では失敗します。
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);
}
アプリケーションフォルダからのアプリケーションパスを期待していましたが、それは/ system /coreservices/から来ています。
これは、/ system / library / coreservices/..に存在するすべてのアイテムで発生します。
/ system / library / coreservices ..またはより良い解決策を探すべきではないということはありましたか?誰か助けてもらえますか?
前もって感謝します。