在win表单中使用C#代码打开控制台应用程序

时间:2016-04-19 06:18:06

标签: c#

我正在尝试从我的Windows窗体应用程序中打开控制台应用程序。我使用了以下代码。代码正在打开控制台应用程序但不显示任何内容(仅显示黑屏)。但是我可以使用StandardOutput成功获得控制台输出。

Process proc = new Process();
proc.StartInfo.CreateNoWindow = false;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.RedirectStandardInput = true;
proc.StartInfo.FileName = @"C:\Program Filex86)\ConsoleTool.exe";

proc.Start();
StreamWriter sw = proc.StandardInput; 
sw.WriteLine("init");

txtOutput.Text += proc.StandardOutput.ReadToEnd().Replace("\n", "\r\n");

txtOutput.Text += proc.StandardError.ReadToEnd().Replace("\n", "\r\n");
proc.WaitForExit();

如何在使用代码打开的控制台窗口上显示?

1 个答案:

答案 0 :(得分:1)

使用AllocConsole功能打开控制台窗口,然后正常使用Console.WriteLine或其他控制台功能!

示例:

[System.Runtime.InteropServices.DllImport("kernel32")]  
extern static void AllocConsole();  
//....  
AllocConsole();  
Console.WriteLine("hello world");  
Console.ReadKey();