我正在尝试从我的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();
如何在使用代码打开的控制台窗口上显示?
答案 0 :(得分:1)
使用AllocConsole
功能打开控制台窗口,然后正常使用Console.WriteLine
或其他控制台功能!
示例:
[System.Runtime.InteropServices.DllImport("kernel32")]
extern static void AllocConsole();
//....
AllocConsole();
Console.WriteLine("hello world");
Console.ReadKey();