c#咋判断一个程序运行后关闭( 二 )

如果觉得哪里看不懂,说明你基础知识不过关。还是先看看多线程啥的,搞明白了图形界面就好弄了。不然各种稀奇古怪的错误就出来了,你都不知道啥原因。
看了各位的评论,原来还可以注册一个完成事件,这下连多余的线程也不用开了。
private void Button_Click(object sender, RoutedEventArgs e) { var inputString = InputBox.Text; if (string.IsNullOrWhiteSpace(inputString)) { return; } var words = inputString.Split(\u0026#39; \u0026#39;); var processName = words; var processArgs = string.Join(" ", words.Skip(1)); var process = new Process(); process.StartInfo.FileName = processName; process.StartInfo.Arguments = processArgs; process.EnableRaisingEvents = true; process.Exited += Process_Finish; process.Start(); } private void Process_Finish(object sender, EventArgs e) { { MessageBox.Show("程序已停止", "程序已停止"); } }如果要判断其他程序是否运行,我不清楚你其他程序在哪里定义的。如果只是要判断是否在运行到时也好办。Process类也提供了相应方法,调用一下就行了。
private void Button_Click(object sender, RoutedEventArgs e) { var inputString = InputBox.Text; int pid = Convert.ToInt32(inputString); try { var process = Process.GetProcessById(pid); if (process.HasExited) { MessageBox.Show("程序已停止", "程序已停止"); } else { MessageBox.Show("程序还在运行", "程序还在运行"); } } catch (Exception ex) { MessageBox.Show("不存在该程序", "不存在该程序"); } }


推荐阅读