首页 > C# 启动外部程序的几种方法

C# 启动外部程序的几种方法

C# 启动外部程序的几种方法:



1. 启动外部程序,不等待其退出。

2. 启动外部程序,等待其退出。

3. 启动外部程序,无限等待其退出。

4. 启动外部程序,通过事件监视其退出。

// using System.Diagnostics;
private string appName = "calc.exe";/// 
/// 1. 启动外部程序,不等待其退出
/// 
private void button1_Click(object sender, EventArgs e)
{Process.Start(appName);MessageBox.Show(String.Format("外部程序 {0} 启动完成!", this.appName), this.Text,MessageBoxButtons.OK, MessageBoxIcon.Information);
}/// 
/// 2. 启动外部程序,等待其退出
/// 
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);}
}/// 
/// 3. 启动外部程序,无限等待其退出
/// 
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);}
}/// 
/// 4. 启动外部程序,通过事件监视其退出
/// 
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);}
}/// 
/// 启动外部程序退出事件
/// 
void proc_Exited(object sender, EventArgs e)
{MessageBox.Show(String.Format("外部程序 {0} 已经退出!", this.appName), this.Text,MessageBoxButtons.OK, MessageBoxIcon.Information);
}

 

转载于:https://www.cnblogs.com/DoNetCShap/archive/2012/06/26/2564488.html

更多相关:

  • 1. 安装pyinstaller pip install pyinstaller 2.如果有外部依赖包 将外部依赖包放到你的python安装的site-packages D:Python27Libsite-packages 3.直接在命令提示符中输入pyinstaller -F 文件名.py 注意F要大写 4. exe在dist...

  • 最近公司要做一个企业微信的小程序,方便企业内的成员来登录,以便一些公司内的业务,只限于公司内的成员来操作,因为有微信小程序的开发经验,所以先当作微信小程序来开发了!首先来讲一下这个企业微信小程序与微信小程序登录的不同,下面是微信小程序登录的流程:小程序内需要调用wx.login(),获取临时登录凭证code,并回传到开发者服务器,然后...

  • sys.argv[]说白了就是一个从程序外部获取参数的桥梁,这个“外部”很关键,因为我们从外部取得的参数可以是多个,所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一个列表,所以才能用[]提取其中的元素。其第一个元素是程序本身,随后才依次是外部给予的参数。下面我们通过一个极简单的test.py程序的运行结果来说...

  •   标题:创意虾-程序纹理Blender大师班 信息: 什么是程序纹理? 程序纹理将简单的数学转换为无限的真实感着色器,具有无限的多样性和分辨率。 超越看起来像一团像素特写的图像纹理,运用程序纹理的力量,清晰的细节和没有重复的模式。 你是不是在玩节点滑块,得到了一些有趣的结果,但不确定引擎盖下到底发生了什么?掌握了节...

  • gprof用于分析函数调用耗时,可用gprof分析最耗时的函数,以便优化程序。 gcc链接时也一定要加-pg参数,以使程序运行结束后生成gmon.out文件,供gprof分析。 gprof默认不支持多线程程序,默认不支持共享库程序。 gcc 编译程序时添加编译选项-pg 运行程序,程序退出时生成 gmon.outgprof ./...

  • 一.虚拟机、linux简介 简单介绍一下虚拟机还有就是各种操作系统,比如centos,Ubuntu 操作系统:linux(centos、Ubuntu、redhat),Android,Windows(xp、win8、win10) 进程,多个程序,分时技术,并行技术 一次打开多个程序,我们在只有一个cpu,如何让这些程序进...