【问题标题】:How do you launch an executable with a GUI from within an already running GUI app如何从已经运行的 GUI 应用程序中启动带有 GUI 的可执行文件
【发布时间】:2012-12-08 10:40:03
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

    Cocoa 方式是-[NSWorkspace launchApplication:]LSOpenApplication 的级别略低,但仍远高于 BSD。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多