C# 生成具有不同输出的控制台子进程

C# 生成具有不同输出的控制台子进程,c#,process,console,C#,Process,Console,我有一个用c编写的控制台应用程序,它启动了一个新的进程。这个新进程也是一个控制台应用程序。问题是整个子进程的输出都转到父控制台窗口,我不希望它这样做。不管它是否创建了一个新的控制台窗口,我不需要它 编辑: 我尝试了一些额外的设置,如CreateNoWindow、RedirectOutput等,但没有成功。通常,当您创建子进程时,会弹出一个新的控制台窗口,子进程的所有输出都会在该窗口中结束。下面是展示此行为的示例程序: using System; using System.Diagnostics;

我有一个用c编写的控制台应用程序,它启动了一个新的进程。这个新进程也是一个控制台应用程序。问题是整个子进程的输出都转到父控制台窗口,我不希望它这样做。不管它是否创建了一个新的控制台窗口,我不需要它

编辑:


我尝试了一些额外的设置,如CreateNoWindow、RedirectOutput等,但没有成功。通常,当您创建子进程时,会弹出一个新的控制台窗口,子进程的所有输出都会在该窗口中结束。下面是展示此行为的示例程序:

using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;

static class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("TEST");

        if (args.Length == 0)
        {
            string path = Assembly.GetExecutingAssembly().Location;
            Process.Start(path, "DontStartProcess");
        }
        Console.ReadLine();
    }
}

您使用什么代码启动第二个控制台应用程序?如果您创建一个新的MemoryStream并将输出重定向到内存流,该怎么办?这样您就有了输出,但它不应该出现在原始控制台窗口的屏幕上。您能显示配置和启动子进程的代码吗?通常会弹出一个新的控制台窗口,并且子进程的所有输出都会在该窗口中结束。p.StartInfo.RedirectStandardOutfoot只是一个bool属性,更改它不会产生任何效果,p.StandardOutput是一个流,但它是只读的is example.exe您自己的应用程序?还是第三方的?它有什么作用?
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;

static class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("TEST");

        if (args.Length == 0)
        {
            string path = Assembly.GetExecutingAssembly().Location;
            Process.Start(path, "DontStartProcess");
        }
        Console.ReadLine();
    }
}