当前位置: 移动技术网 > IT编程>开发语言>c# > C#启动外部程序的几种常用方法汇总

C#启动外部程序的几种常用方法汇总

2019年07月18日  | 移动技术网IT编程  | 我要评论
本文汇总了c#启动外部程序的几种常用方法,非常具有实用价值,主要包括如下几种方法: 1. 启动外部程序,不等待其退出。 2. 启动外部程序,等待其退出。 3. 启动外

本文汇总了c#启动外部程序的几种常用方法,非常具有实用价值,主要包括如下几种方法:

1. 启动外部程序,不等待其退出。
2. 启动外部程序,等待其退出。
3. 启动外部程序,无限等待其退出。
4. 启动外部程序,通过事件监视其退出。

实现代码如下:

// using system.diagnostics;
private string appname = "calc.exe";
/// <summary>
/// 1. 启动外部程序,不等待其退出
/// </summary>
private void button1_click(object sender, eventargs e)
{
process.start(appname);
messagebox.show(string.format("外部程序 {0} 启动完成!", this.appname), this.text,
messageboxbuttons.ok, messageboxicon.information);
}
/// <summary>
/// 2. 启动外部程序,等待其退出
/// </summary>
private void button2_click(object sender, eventargs e)
{
try
{
process proc = 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 (argumentexception ex)
{
messagebox.show(ex.message, this.text, messageboxbuttons.ok, messageboxicon.error);
}
}
/// <summary>
/// 3. 启动外部程序,无限等待其退出
/// </summary>
private void button3_click(object sender, eventargs e)
{
try
{
process proc = process.start(appname);
if (proc != null)
{
proc.waitforexit();
messagebox.show(string.format("外部程序 {0} 已经退出!", this.appname), this.text,
messageboxbuttons.ok, messageboxicon.information);
}
}
catch (argumentexception ex)
{
messagebox.show(ex.message, this.text, messageboxbuttons.ok, messageboxicon.error);
}
}
/// <summary>
/// 4. 启动外部程序,通过事件监视其退出
/// </summary>
private void button4_click(object sender, eventargs e)
{
try
{
//启动外部程序
process proc = process.start(appname);
if (proc != null)
{
//监视进程退出
proc.enableraisingevents = true;
//指定退出事件方法
proc.exited += new eventhandler(proc_exited);
}
}
catch (argumentexception ex)
{
messagebox.show(ex.message, this.text, messageboxbuttons.ok, messageboxicon.error);
}
}
/// <summary>
///启动外部程序退出事件
/// </summary>
void proc_exited(object sender, eventargs e)
{
messagebox.show(string.format("外部程序 {0} 已经退出!", this.appname), this.text,
messageboxbuttons.ok, messageboxicon.information);

读者可以根据情况选择本文实例中的方法,希望能对大家的c#程序设计有一定的帮助借鉴作用。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网