输出命令行(.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 已编辑。而且它不活跃。文本框不显示任何内容。