如何通过双击文件来检测是否启动了应用程序?

时间:2014-07-21 12:02:38

标签: macos objective-c++

我需要检测我的应用程序是否是为了响应用户双击文件或Spotlight而启动的。如果通过Spotlight(或双击应用程序图标)调用并且没有要打开的输入文件,我必须做一些额外的事情。我无法访问NSApplicationDelegate对象,因此无法在applicaion:openFile(s):上设置标记。在任何情况下,我都无法无限期地检查这些回调是否已经发生。有什么方法可以从代码中的任意点查询启动方法吗?

1 个答案:

答案 0 :(得分:0)

当您双击某个应用程序的相关文件时,该应用程序将通过调用Apple Launch Services从Finder启动,并调用LSOpenURLsWithRole函数。< / p>

Spotlight很可能也使用Launch Services或直接调用Finder,所以我认为答案是否定的,你不能区分通过Finder或Spotlight启动。

也许如果你详细说明你想要实现的目标以及为什么需要区分它们,可能还有另一种解决问题的方法。