这篇文章主要介绍了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#程序设计有一定的帮助借鉴作用。
|
|