C ++启动另一个程序并退出

时间:2015-01-25 04:18:57

标签: c++

我正在尝试创建一个程序,它启动另一个.exe本身只是在其他程序启动后关闭。

我目前有以下代码:

#include <cstdlib>

int main( )
{
    std::system( "checkpoint.exe" );
}

我可以启动checkpoint.exe,但启动程序本身在checkpoint.exe关闭之前不会关闭。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

由于您似乎使用的是Windows,因此可以使用CreateProcess

LPSTARTUPINFO lpStartupInfo;
LPPROCESS_INFORMATION lpProcessInfo;

memset(&lpStartupInfo, 0, sizeof(lpStartupInfo));
memset(&lpProcessInfo, 0, sizeof(lpProcessInfo));

CreateProcess("checkpoint.exe"
              NULL, NULL, NULL,
              NULL, NULL, NULL, NULL,
              lpStartupInfo,
              lpProcessInfo
             )

答案 1 :(得分:1)

上一个答案有一些错误,所以这是一个有效的解决方案:

#include <cstdlib>
#include <Windows.h>

int main( )
{    
    STARTUPINFO lpStartupInfo;
    PROCESS_INFORMATION lpProcessInfo;

    ZeroMemory( &lpStartupInfo, sizeof( lpStartupInfo ) );
    lpStartupInfo.cb = sizeof( lpStartupInfo );
    ZeroMemory( &lpProcessInfo, sizeof( lpProcessInfo ) );

    CreateProcess( "Program.exe",
                   NULL, NULL, NULL,
                   NULL, NULL, NULL, NULL,
                   &lpStartupInfo,
                   &lpProcessInfo
                   );

    return 0;
}