3

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

现在,我正在使用fork启动另一个可执行文件,然后执行execve并关闭启动它的应用程序,但新的可执行文件将菜单栏与刚刚关闭的应用程序隔离开来。这会阻止我运行原始应用程序,直到我关闭可执行文件的窗口。

我发现的唯一一件事是人们说要使用nohup但据我了解,当父母关闭时,它只会阻止程序关闭?

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

4

2 回答 2

2

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

于 2012-12-20T23:44:41.033 回答
0

事实证明,我试图启动的可执行文件最初位于另一个应用程序包中,正在使用plist文件来启动可执行文件的应用程序。我在原始应用程序的可执行文件所在的 Contents/MacOS 文件夹中有可执行文件。将其他可执行文件放入其自己的应用程序包中后,我能够在其自己的包中的可执行文件上使用forkexecve来正确启动它。

于 2012-12-23T15:15:13.953 回答