C#启动外部程序的几种常用方法汇总
程序员文章站
2024-02-13 23:51:16
本文汇总了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#程序设计有一定的帮助借鉴作用。