有没有办法在编写控制台应用程序时创建第二个控制台以在.NET中输出?

有没有办法在编写控制台应用程序时创建第二个控制台以在.NET中输出?

好吧,你可以启动一个新的cmd.exe进程并使用stdio和stdout来发送和接收数据。

ProcessStartInfo psi = new ProcessStartInfo("cmd.exe") { RedirectStandardError = true, RedirectStandardInput = true, RedirectStandardOutput = true, UseShellExecute = false }; Process p = Process.Start(psi); StreamWriter sw = p.StandardInput; StreamReader sr = p.StandardOutput; sw.WriteLine("Hello world!"); sr.Close(); 

有关MSDN的更多信息。

以下内容将触发与应用程序相关的控制台窗口数量,并将控制台的数量和参数存储在字符串字典中,然后循环生成所需数量的生成的控制台应用程序。 如果只产生一个过程,你只需要过程的东西。

 //Start looping dic recs and firing console foreach (DictionaryEntry tests in steps) { try { Process runCmd = new Process(); runCmd.StartInfo.FileName = CONSOLE_NAME; runCmd.StartInfo.UseShellExecute = true; runCmd.StartInfo.RedirectStandardOutput = false; runCmd.StartInfo.Arguments = tests.Value.ToString(); if (cbShowConsole.Checked) { runCmd.StartInfo.CreateNoWindow = true; runCmd.StartInfo.WindowStyle = ProcessWindowStyle.Normal; } else { runCmd.StartInfo.CreateNoWindow = false; runCmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; } runCmd.Start(); } catch (Exception ex) { string t1 = ex.Message; } } 

请注意,这是为了运行隐藏(CreateNoWindow)或可见。

任何给定进程都附加一个控制台。 所以简而言之,你不能。 但有办法“假装”