输出命令行(.Bat 文件)显示在带有 c# 的文本框中
Output Command Line (.Bat FILE) show in textbox with c#
Process proc = new Process();
proc.StartInfo.FileName = @"C:\Users\Administrator\Desktop\Python27\ToolArtworkEmoji.bat";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.Start();
proc.OutputDataReceived += proc_OutputDataReceived;
proc.BeginOutputReadLine();
proc.WaitForExit();
textbox1.Text = proc.StandardOutput.ReadToEnd();
为什么代码没有激活。它不在文本框中显示命令。
我能帮我吗?
非常感谢
您需要在 proc_OutputDataReceived
处理程序中读取输出,而不是通过 proc.StandardOutput.ReadToEnd();
换句话说,放一些像
textbox1.BeginInvoke(new Action(()=>{textbox1.Text=e.Data;}));
在 proc_OutputDataReceived
处理程序中(e 是 DataReceivedEventArgs 参数)
private void button1_Click_1(object sender, EventArgs e)
{
Process proc = new Process();
proc.StartInfo.FileName = @"C:\Users\Administrator\Desktop\Python27\ToolArtworkEmoji.bat";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.Start();
proc.OutputDataReceived += proc_OutputDataReceived;
proc.BeginOutputReadLine();
proc.WaitForExit();
{
private void proc_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
tblog.BeginInvoke(new Action(() => { tblog.Text = e.Data; }));
}
E 已编辑。而且它不活跃。文本框不显示任何内容。
Process proc = new Process();
proc.StartInfo.FileName = @"C:\Users\Administrator\Desktop\Python27\ToolArtworkEmoji.bat";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.Start();
proc.OutputDataReceived += proc_OutputDataReceived;
proc.BeginOutputReadLine();
proc.WaitForExit();
textbox1.Text = proc.StandardOutput.ReadToEnd();
为什么代码没有激活。它不在文本框中显示命令。 我能帮我吗? 非常感谢
您需要在 proc_OutputDataReceived
处理程序中读取输出,而不是通过 proc.StandardOutput.ReadToEnd();
换句话说,放一些像
textbox1.BeginInvoke(new Action(()=>{textbox1.Text=e.Data;}));
在 proc_OutputDataReceived
处理程序中(e 是 DataReceivedEventArgs 参数)
private void button1_Click_1(object sender, EventArgs e)
{
Process proc = new Process();
proc.StartInfo.FileName = @"C:\Users\Administrator\Desktop\Python27\ToolArtworkEmoji.bat";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.Start();
proc.OutputDataReceived += proc_OutputDataReceived;
proc.BeginOutputReadLine();
proc.WaitForExit();
{
private void proc_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
tblog.BeginInvoke(new Action(() => { tblog.Text = e.Data; }));
}
E 已编辑。而且它不活跃。文本框不显示任何内容。