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#程序设计有一定的帮助借鉴作用。