当前位置:  编程技术>.net/c#/asp.net

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

    来源: 互联网  发布时间:2014-11-01

    本文导语:  本文汇总了C#启动外部程序的几种常用方法,非常具有实用价值,主要包括如下几种方法: 1. 启动外部程序,不等待其退出。 2. 启动外部程序,等待其退出。 3. 启动外部程序,无限等待其退出。 4. 启动外部程序,通过事件...

本文汇总了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);

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


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • sqlserver常用命令行操作(启动、停止、暂停)
  • Windows 7 下 IE10启动很慢,如何更改设置让它启动变快
  • 各位大虾,请问怎样在启动菜单中指定由硬盘启动(象EASYBOOT,JO.SYS..启动时指定由硬盘启动)?
  • 红帽RHEL下面设置docker服务自动启动
  • 我的LINUX为什么不能选择启动,只能用启动盘启动
  • Windows7自带防火墙设置:启动,关闭及高级设置
  • emacs不启动X的界面,启动在终端里面呢?(希望他启动x界面)
  • Ubuntu程序开机自动启动设置(服务和自动运行配置文件)的几种方法
  • 在我启动linux设成Gnome图片模式启动,如果想启动字符模式,应怎样把级别5改为3吗,教我改法
  • 隐藏andriod 应用app启动图标的几种方法
  • linux 服务器启动时,机子启动就启动下面的这行命令
  • Arch下面安装启动及删除docker介绍
  • 再线送分:我的硬盘装了REDHAT LINUX,但不启动,软盘启动盘也没了,请问怎样能再次启动?
  • 如何在win7,win8下面启动docker
  • 如何修改启动菜单的启动顺序(linux,windows),我想让系统默认启动到windows.谢谢!!
  • Mysql服务器登陆,启动,停止等基本操作命令介绍(Linux/Centos环境)
  • 怎样在Fedora Core 7下看到TOMCAT5的启动过程(如加载的WEB应用,类包,监听端口,启动时间),并在桌面上建立一个启动startup.sh的快捷方式?
  • 我没在硬盘上装启动,我用的是软盘启动,现在想要在NT下启动Linux
  • 急死了。。XP下删除LINUX分区,启动不了机器。连windows启动光盘和DOS软盘也启动不了。BIOS也进不去。
  • 无法启动。xp,opensuse双系统,suse中修改了系统启动顺序,机器无法启动了,提示no operating system
  • vmware下加载了一个虚拟软驱镜像,如果设置第一启动项为软驱的话,软驱能正常加载运行。但如果我第一启动项不设为软驱,正常启动fedora12的话。
  • 如何修改RedHat8启动延时及默认启动的系统?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3