如何在已运行的GUI应用程序中使用GUI启动可执行文件

时间:2012-12-20 20:42:18

标签: c++ macos osx-mountain-lion

我有一个在OS X中运行的应用程序需要使用GUI启动另一个可执行文件,然后关闭自己,使其他GUI完好无损。

现在我用 fork 然后 execve 启动其他可执行文件并关闭启动它的应用程序,但是新的可执行文件保留了应用程序中的菜单栏关闭。这使我无法运行原始应用程序,直到我关闭可执行文件的窗口。

我发现的唯一一件事是人们说使用 nohup ,但据我所知,只是在父母关闭时才停止关闭程序?

编辑:在第一个答案中查看函数后,我意识到我应该包含更多细节。我使用的是OS X 10.8,似乎已经弃用了很多文件管理器API。另一个重要细节是我需要将命令行参数传递给可执行文件。

2 个答案:

答案 0 :(得分:2)

Cocoa方式是-[NSWorkspace launchApplication:]。在略低的水平,但仍然高于BSD,有LSOpenApplication

答案 1 :(得分:0)

事实证明,我尝试启动的可执行文件(最初是在另一个应用程序包中)正在使用 plist 文件来启动可执行文件的应用程序。我在Contents / MacOS文件夹中有可执行文件,其中存在原始应用程序的可执行文件。将其他可执行文件放入自己的应用程序包后,我可以在其自己的程序包中的可执行文件上使用 fork execve 来正确启动它。