【发布时间】:2014-07-01 03:57:44
【问题描述】:
我希望在命令完成后触发子命令窗口的关闭事件。请记住,它是从控制台应用程序启动的后台进程,因此它永远不可见。可见的是控制台应用程序。
我尝试使用 Exited 事件,但没有成功。我尝试依靠 CMD 来知道何时使用 /c、/k 和退出来关闭它。两者似乎都不起作用。我还尝试了一个 do while 循环检查 HasExited,除非我在应用程序控制台窗口中键入“exit”,否则这些都不起作用。它不会关闭,但会以某种方式触发不可见的子命令窗口关闭。
子命令完成后是否有另一种关闭它的方法?
String msg = "echo %time%; exit;";
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = msg;
p.EnableRaisingEvents = true;
p.Exited += p_Exited;
p.Start();
msg += p.StandardOutput.ReadToEnd();
非常感谢!!
【问题讨论】: