C ++ CreateProcess()在第一个窗口中运行

时间:2013-04-04 21:33:45

标签: c++

我正在使用控制台程序中的CreateProcess()运行另一个控制台程序,但它在同一窗口中运行 作为第一个。

STARTUPINFO sinfo;
PROCESS_INFORMATION pinfo;

LPSTR commandLine = " \"Cows and Bulls.exe\" test ";

ZeroMemory(&sinfo, sizeof(sinfo));
ZeroMemory(&pinfo, sizeof(pinfo));

if(!CreateProcess(0,commandLine, 0, 0, FALSE, 0, 0, 0, &sinfo, &pinfo))
    cout << "failed";

这是我的代码。我究竟做错了什么?添加

后,它变得非常有趣
for(int i=0; true; i++)
{
    cout << i;
    Sleep(1000);
}

到第一个。然后它开始输出数字 IN 下一个。

这就像两个程序合并 ..我不希望这样,我想打开一个窗口。

P.S。我正在传递论据,是的,但是如果我切断test结果是相同的。

1 个答案:

答案 0 :(得分:4)

要为子进程提供新的控制台,您需要在CREATE_NEW_CONSOLE的{​​{1}}参数中设置dwCreationFlags标记。这里的文档:http://msdn.microsoft.com/en-gb/library/windows/desktop/ms682425(v=vs.85).aspx