我目前正在C#中创建一个允许您创建服务器并轻松管理的应用程序,为此,它使用批处理文件来运行所述服务器。它的工作原理是创建批处理文件并使用它们来运行服务器。 (顺便说一下Java)。
所以,我想知道的是,如果可以从控制台获取输出而不是将其转储到文本框中并像下面的代码那样关闭控制台,我需要它来连续发布控制台的任何输出没有关闭,也没有垃圾邮件打开控制台(尝试使用计时器)。
Process myProcess = new Process();
ProcessStartInfo myProcessStartInfo =
new ProcessStartInfo(batchfilelocation);
myProcessStartInfo.UseShellExecute = false;
myProcessStartInfo.RedirectStandardOutput = true;
myProcess.StartInfo = myProcessStartInfo;
myProcess.Start();
StreamReader myStreamReader = myProcess.StandardOutput;
// Read the standard output of the spawned process.
string myString = myStreamReader.ReadToEnd();
textBox1.Text = textBox1.Text + myString;
myProcess.Close();
我也想知道是否可以允许来自Windows窗体控件的输入,例如通过在控制台中输入命令并按Enter键来执行命令的按钮。或者是一个允许你做同样事情的文本框。
谢谢!
答案 0 :(得分:1)
您不需要TextBox控件来存储字符串。只需使用字符串变量。
string concatenatedString = null;
concatenatedString += myStreamReader.ReadToEnd();
其次,您可以在不创建控制台窗口的情况下执行此操作。下面的代码将允许您的程序运行,而不会看到大量的控制台窗口弹出。
myProcessStartInfo.CreateNoWindow = true;