从另一个exe运行Exe

时间:2015-03-10 12:18:24

标签: c++ c++builder-xe7

我想从另一个exe执行一个exe。但是如果第一个exe正在运行,则另一个exe无法运行。

所以我想在第二个exe执行之前运行exe并退出应用程序。

对此有任何帮助。

3 个答案:

答案 0 :(得分:1)

考虑第三个应用程序,您可以从第一个应用程序启动它。第三个检查以确保第一个已终止,然后启动第二个应用程序并终止自身。我过去不得不这样做;它工作正常。

答案 1 :(得分:1)

如果不允许同时执行两个主要进程,则需要一个进程位于中间。这意味着您总共需要三个流程。两个主要流程,A和C,以及中间的经纪人B.以下是它如何发生故障:

  • 流程A执行。
  • 进程A启动进程B传入其进程 处理。
  • 进程A终止。
  • 进程B等待进程A的进程句柄。当进程A终止时,该进程将发出信号。
  • 流程B启动流程C.
  • 流程B终止。

我假设你已经知道如何创建进程,传递参数进行处理,复制句柄,等待句柄等等。

答案 2 :(得分:0)

我不确定它是如何在Windows中完成的,但我认为linux和windows之间的一般准则是相同的:

你需要派生一个子进程,在Linux中这是使用fork()函数完成的,在Windows中我认为你可以使用CreateProcess()。 在此子进程中,您需要调用其中一个 exec 函数,这些函数将此子进程的代码更改为您可以指定为exec函数的参数的任何可执行文件的代码。

因此,代码应该像这样的伪代码:

c= CreateProcess()
if (c == child)
{
    exec("My other executable.exe")
}

这是一般程序,但您需要弄清楚语法