【发布时间】:2018-11-29 10:26:37
【问题描述】:
我有一个批处理文件,我在整个过程中运行,但是当批处理文件完成运行并关闭时,表单也会关闭。我如何防止关闭表单的过程。这是代码。
Process support = new Process();
support.StartInfo.FileName = @"C:\Support\Support.bat";
support.EnableRaisingEvents = true;
support.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
support.StartInfo.CreateNoWindow = true;
support.StartInfo.UseShellExecute = false;
support.OutputDataReceived += new DataReceivedEventHandler(OutputHandler);
support.StartInfo.RedirectStandardOutput = true;
support.Start();
support.BeginOutputReadLine();
这是将批处理文件的输出写入richTextbox的输出处理程序
private void OutputHandler(object sendingProcess, DataReceivedEventArgs outLine)
{
string line;
line = (outLine.Data.ToString());
txtStatus.AppendText(line + "\n");
}
批处理文件完成后自动关闭,程序也关闭,不再执行其余代码。
【问题讨论】:
-
您的问题中没有足够的信息。考虑提供minimal reproducible example。
-
“表格”?我们没有任何信息,包括它与第一个代码块的关系。
-
我应该发布整个代码吗?
-
不,您应该点击链接到minimal reproducible example。创建一个需要技巧和努力,但无论如何,该技能是必不可少的调试技能。它是“我有一些奇怪的行为,证明这种行为的最小的代码是什么”。它可以帮助您丢弃不相关的内容,否则可能会分散您的注意力,因为您“确定”它们一定是问题的一部分。
-
程序真的关闭了吗?您是否尝试在创建进程后放置断点?对我来说这似乎没问题,但如果你期望 bat 文件产生一些结果,你应该等到进程完成
Process.WaitForExit()