C#启动外部程序的几种常用方法汇总
本文汇总了C#启动外部程序的几种常用方法,非常具有实用价值,主要包括如下几种方法:
1.启动外部程序,不等待其退出。
2.启动外部程序,等待其退出。
3.启动外部程序,无限等待其退出。
4.启动外部程序,通过事件监视其退出。
实现代码如下:
//usingSystem.Diagnostics; privatestringappName="calc.exe"; ///<summary> ///1.启动外部程序,不等待其退出 ///</summary> privatevoidbutton1_Click(objectsender,EventArgse) { Process.Start(appName); MessageBox.Show(String.Format("外部程序{0}启动完成!",this.appName),this.Text, MessageBoxButtons.OK,MessageBoxIcon.Information); } ///<summary> ///2.启动外部程序,等待其退出 ///</summary> privatevoidbutton2_Click(objectsender,EventArgse) { try { Processproc=Process.Start(appName); if(proc!=null) { proc.WaitForExit(3000); if(proc.HasExited)MessageBox.Show(String.Format("外部程序{0}已经退出!",this.appName),this.Text, MessageBoxButtons.OK,MessageBoxIcon.Information); else { //如果外部程序没有结束运行则强行终止之。 proc.Kill(); MessageBox.Show(String.Format("外部程序{0}被强行终止!",this.appName),this.Text,MessageBoxButtons.OK,MessageBoxIcon.Exclamation); } } } catch(ArgumentExceptionex) { MessageBox.Show(ex.Message,this.Text,MessageBoxButtons.OK,MessageBoxIcon.Error); } } ///<summary> ///3.启动外部程序,无限等待其退出 ///</summary> privatevoidbutton3_Click(objectsender,EventArgse) { try { Processproc=Process.Start(appName); if(proc!=null) { proc.WaitForExit(); MessageBox.Show(String.Format("外部程序{0}已经退出!",this.appName),this.Text, MessageBoxButtons.OK,MessageBoxIcon.Information); } } catch(ArgumentExceptionex) { MessageBox.Show(ex.Message,this.Text,MessageBoxButtons.OK,MessageBoxIcon.Error); } } ///<summary> ///4.启动外部程序,通过事件监视其退出 ///</summary> privatevoidbutton4_Click(objectsender,EventArgse) { try { //启动外部程序 Processproc=Process.Start(appName); if(proc!=null) { //监视进程退出 proc.EnableRaisingEvents=true; //指定退出事件方法 proc.Exited+=newEventHandler(proc_Exited); } } catch(ArgumentExceptionex) { MessageBox.Show(ex.Message,this.Text,MessageBoxButtons.OK,MessageBoxIcon.Error); } } ///<summary> ///启动外部程序退出事件 ///</summary> voidproc_Exited(objectsender,EventArgse) { MessageBox.Show(String.Format("外部程序{0}已经退出!",this.appName),this.Text, MessageBoxButtons.OK,MessageBoxIcon.Information);
读者可以根据情况选择本文实例中的方法,希望能对大家的C#程序设计有一定的帮助借鉴作用。