C++ LSOpenApplication已弃用?
根据page的介绍,自OS X v10.10以来,C++ LSOpenApplication已弃用?,c++,macos,core-services,launch-services,C++,Macos,Core Services,Launch Services,根据page的介绍,自OS X v10.10以来,LSOpenApplication功能已被弃用。建议的替代方案是使用-[NSWorkSpace launchapplicationaURL]。不幸的是,我正在编写一个C++的用户代理,它必须启动一个用COCOA编写的GUI应用程序。这意味着我无法访问Cocoa功能(包括上述替代功能) 我还可以使用哪些未标记为已弃用的函数来帮助我完成此操作 提前感谢。您可以使用LSOpenCFURLRef()和要打开的应用程序的URL打开应用程序。类似地,您可以将
LSOpenApplication
功能已被弃用。建议的替代方案是使用-[NSWorkSpace launchapplicationaURL]
。不幸的是,我正在编写一个C++的用户代理,它必须启动一个用COCOA编写的GUI应用程序。这意味着我无法访问Cocoa功能(包括上述替代功能)
我还可以使用哪些未标记为已弃用的函数来帮助我完成此操作
提前感谢。您可以使用
LSOpenCFURLRef()
和要打开的应用程序的URL打开应用程序。类似地,您可以将LSOpenFromURLSpec()
与LSLaunchURLSpec
一起用于appURL
字段中应用程序的URL。我可以像使用LSOpenApplication一样为进程提供参数吗?不完全正确,但向应用程序传递参数是不常见的。首先,“打开”应用程序可能意味着重新打开它。也就是说,如果它已经运行,它将被激活,并将收到一个“rapp”苹果事件。在这种情况下,它不会接收命令行参数,因为这些参数只有在启动时才有意义。类似地,用户通常通过Apple事件与GUI应用程序通信。因此,例如,如果使用应用程序打开文档,它不会作为命令行参数传递。相反,它在“奥多克”苹果活动中通过LSOpenFromURLSpec()
将通过itemURLs
为您的应用程序执行此操作。谢谢。我要试试AppleeEvent方法!