在cocoa中查找已安装的应用程序

Mob*_*obX 1 macos cocoa

我正在开发一个可可的应用程序.我需要检查iTunes是否安装在机器中.是否有任何方法可以找到已安装的应用程序????

小智 8

函数LSFindApplicationForInfo()可以获取包ID(例如com.apple.iTunes),因此您可以通过尝试查找来确定iTunes是否已安装.

http://developer.apple.com/DOCUMENTATION/Carbon/Reference/LaunchServicesReference/Reference/reference.html

为了回答你问题的第二部分,也就是对LaunchServices一个隐藏式的接口让所有的应用程序名称的列表.但是,由于您的目标是查找是否已安装iTunes,请不要使用它 - 只需查找iTunes即可.

  • 或者甚至可以使用 - [NSWorkspace absolutePathForAppBundleWithIdentifier:](无论如何可能调用LSFindApplicationForInfo()) (8认同)

Jon*_*etz 6

正如Mike Abdullah所提到的,正确的可可电话是:

NSString* iTunesPath = [ [ NSWorkspace sharedWorkspace ] 
        absolutePathForAppBundleWithIdentifier: @"com.apple.iTunes" ];
if( iTunesPath ) {
    // iTunes installed, do something
}
Run Code Online (Sandbox Code Playgroud)