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

 更新时间:2014年08月19日 09:37:14   投稿:shichen2014  
这篇文章主要介绍了C#启动外部程序的几种常用方法汇总,对C#初学者来说有很高的学习借鉴价值,需要的朋友可以参考下

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

相关文章

  • 在Linux上运行C#的方法

    在Linux上运行C#的方法

    这篇文章主要介绍了在Linux上运行C#的方法,实例分析了Linux平台下Mono软件包的应用技巧,以及在此基础之上的C#运行方法,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-12-12
  • C#实现视频的批量剪辑功能

    C#实现视频的批量剪辑功能

    这篇文章主要介绍了C#实现视频的批量剪辑功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • C#图像处理之浮雕效果实现方法

    C#图像处理之浮雕效果实现方法

    这篇文章主要介绍了C#图像处理之浮雕效果实现方法,可实现图片转换成浮雕效果的功能,需要的朋友可以参考下
    2015-04-04
  • Unity Shader实现2D水流效果

    Unity Shader实现2D水流效果

    这篇文章主要为大家详细介绍了Unity Shader实现2D水流效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • Unity学习之FSM有限状态机

    Unity学习之FSM有限状态机

    这篇文章主要介绍了Unity学习之FSM有限状态机,通过详细的代码案例来进行解析说明,希望这篇文章对你有所帮助
    2021-06-06
  • 浅谈C#索引器

    浅谈C#索引器

    这篇文章主要简单介绍C#索引器,索引器使你可从语法上方便地创建类、结构或接口,以便客户端应用程序可以像访问数组一样访问它们。编译器将生成一个 Item 属性和适当的访问器方法,在主要目标是封装内部集合或数组的类型中,常常要实现索引器,下面我们一起来看看具体内容吧
    2021-11-11
  • C#图形区域剪切的实现方法

    C#图形区域剪切的实现方法

    这篇文章主要介绍了C#图形区域剪切的实现方法,涉及C#图形操作的相关技巧,需要的朋友可以参考下
    2015-06-06
  • 基于C#实现的多生产者多消费者同步问题实例

    基于C#实现的多生产者多消费者同步问题实例

    这篇文章主要介绍了基于C#实现的多生产者多消费者同步问题,包括了加锁与释放锁,以及对应临界资源的访问。是比较实用的技巧,需要的朋友可以参考下
    2014-09-09
  • C#实现系统托盘通知的方法

    C#实现系统托盘通知的方法

    这篇文章主要介绍了C#实现系统托盘通知的方法,涉及C#系统api调用的相关技巧,需要的朋友可以参考下
    2015-06-06
  • C# 实例解释面向对象编程中的单一功能原则(示例代码)

    C# 实例解释面向对象编程中的单一功能原则(示例代码)

    本文我介绍了 SOLID 原则中的单一功能原则(single-responsibility principle),并通过 C# 代码示例简明地诠释了它的含意和实现,对C# 面向对象编程原则感兴趣的朋友跟随小编一起看看吧
    2022-02-02

最新评论