我正在使用C#并控制同事的CMD。我已经将控件cmd和实时显示实现到富文本框。
但真正的请求是将此消息堆叠到富文本框中。我的程序无法堆叠cmd命令(保留以前cmds的历史记录)。
下面的代码工作与实时显示。如果我发送" dir"然后它可以显示我想要的东西。但是在下面的功能之后再为设备做其他工作并重新进入下面的功能和C#清除富文本框然后显示新的东西。
但我想要的是:不要删除以前在富文本框中工作的内容(保留历史记录)。希望在富文本框中堆叠整个邮件。
如果这不正确,那么另一种方式是什么?不使用富文本框?喜欢只用笔记本??有没有人知道如何实现这个?
以下是我的代码示例。
string cmd1 = @"cd\"; /////this section changed by user so just send variety cmd.
string cmd2 = @"cd device_control";
string cmd3 = @"dir/w";
ProcessStartInfo cmd = new ProcessStartInfo();
Process process = new Process();
cmd.FileName = @"cmd";
cmd.WindowStyle = ProcessWindowStyle.Normal;
cmd.CreateNoWindow = true; // cmd
cmd.UseShellExecute = false;
cmd.RedirectStandardOutput = true; /////// @@@@@@@@@@
cmd.RedirectStandardInput = true;
cmd.RedirectStandardError = true;
process.EnableRaisingEvents = true;
process.StartInfo = cmd;
process.Start();
process.StandardInput.Write(cmd1 + Environment.NewLine);
process.StandardInput.Write(cmd2 + Environment.NewLine);
process.StandardInput.Write(cmd3 + Environment.NewLine);
process.StandardInput.Close();
string result = process.StandardOutput.ReadToEnd();
richTextBox2.Text = result;
上面的代码工作正常,没有cmds的历史。
我想要的是我将访问上述功能约50次。这可以实时显示,但人们希望将消息堆叠到richtext框(保留cmds的历史记录),因为人们希望看到完整的日志。
如何将命令附加到richtext框,而不是覆盖以前的命令?