【发布时间】:2017-10-23 14:18:53
【问题描述】:
我有一个使用 cmd 运行 EXE 文件的方法。此 EXE 文件在初始化期间出现异常,然后重试并在我的系统上启动一个进程。我无法编辑 EXE 文件以更改其行为。 运行代码时,出现异常后,命令行窗口立即关闭。 如何在重试之前保持 cmd 窗口打开? 谢谢, 塔尔。
public void RunJob(Process cmdProcess)
{
cmdProcess.StartInfo.FileName = "cmd.exe";
cmdProcess.StartInfo.UseShellExecute = false;
cmdProcess.StartInfo.CreateNoWindow = true;
cmdProcess.StartInfo.RedirectStandardOutput = true;
cmdProcess.OutputDataReceived += new DataReceivedEventHandler(form.SortOutputHandler);
cmdProcess.StartInfo.RedirectStandardError = true;
cmdProcess.ErrorDataReceived += new DataReceivedEventHandler(form.SortOutputHandler);
cmdProcess.StartInfo.RedirectStandardInput = true;
cmdProcess.StartInfo.Arguments = string.Format("/k cd \"{0}\\BinFolder\"", form.txtLocalRepo);
cmdProcess.StartInfo.Verb = "runas";
cmdProcess.Start();
StreamWriter cmdStreamWriter = cmdProcess.StandardInput;
cmdProcess.BeginOutputReadLine();
cmdStreamWriter.WriteLine("START testing.exe");
}
【问题讨论】:
-
您不必一直打开窗口。您可以使用 Process.WaitForExit() 等待程序,同时可以接收 WMI 事件,通知您备份程序的启动(当您启动的可执行文件在初始化过程中失败时启动)。您可以检查以下内容:(已接受的答案,编辑 2)stackoverflow.com/questions/8157548/…