C#啟動外部程序的幾種常用方法匯總
本文匯總了C#啟動外部程序的幾種常用方法,非常具有實用價值,主要包括如下幾種方法:
1. 啟動外部程序,不等待其退出。
2. 啟動外部程序,等待其退出。
3. 啟動外部程序,無限等待其退出。
4. 啟動外部程序,通過事件監(jiān)視其退出。
實現(xiàn)代碼如下:
// 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} 已經(jīng)退出!", this.appName), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); else { // 如果外部程序沒有結(jié)束運行則強行終止之。 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} 已經(jīng)退出!", this.appName), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (ArgumentException ex) { MessageBox.Show(ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); } } /// <summary> /// 4. 啟動外部程序,通過事件監(jiān)視其退出 /// </summary> private void button4_Click(object sender, EventArgs e) { try { //啟動外部程序 Process proc = Process.Start(appName); if (proc != null) { //監(jiān)視進(jìn)程退出 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} 已經(jīng)退出!", this.appName), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
讀者可以根據(jù)情況選擇本文實例中的方法,希望能對大家的C#程序設(shè)計有一定的幫助借鑒作用。
相關(guān)文章
C# MVC模式中應(yīng)該怎樣區(qū)分應(yīng)用程序邏輯(Controller層)和業(yè)務(wù)邏輯(Model層)?
這篇文章主要介紹了C# MVC模式中應(yīng)該怎樣區(qū)分應(yīng)用程序邏輯(Controller層)和業(yè)務(wù)邏輯(Model層)?,這也小編做.NET項目時經(jīng)常思考和讓人混亂的一個問題,這篇文章寫的挺好,一下清晰了許多,需要的朋友可以參考下2015-06-06如何利用Jenkins + TFS為.Net Core實現(xiàn)持續(xù)集成/部署詳解
這篇文章主要給大家介紹了關(guān)于如何利用Jenkins + TFS為.Net Core實現(xiàn)持續(xù)集成/部署的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05C#使用Fody實現(xiàn)監(jiān)控方法執(zhí)行時間
這篇文章主要為大家詳細(xì)介紹了C#如何使用Fody實現(xiàn)監(jiān)控方法執(zhí)行時間,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以了解下2023-11-11C#實現(xiàn)將HTML轉(zhuǎn)換成純文本的方法
這篇文章主要介紹了C#實現(xiàn)將HTML轉(zhuǎn)換成純文本的方法,基于自定義類實現(xiàn)文本轉(zhuǎn)換功能,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07C# 導(dǎo)出Excel的6種簡單方法實現(xiàn)
C# 導(dǎo)出 Excel 的6種簡單方法:數(shù)據(jù)表導(dǎo)出到 Excel,對象集合導(dǎo)出到 Excel,數(shù)據(jù)庫導(dǎo)出到 Excel,微軟網(wǎng)格控件導(dǎo)出到 Excel,數(shù)組導(dǎo)出到 Excel,CSV 導(dǎo)出到 Excel,你都會了嗎?需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09C#發(fā)送數(shù)據(jù)到剪貼板及從剪貼板中取數(shù)據(jù)的方法
這篇文章主要介紹了C#發(fā)送數(shù)據(jù)到剪貼板及從剪貼板中取數(shù)據(jù)的方法,涉及C#針對剪貼板數(shù)據(jù)的讀寫操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07WPF使用DrawingContext實現(xiàn)繪制刻度條
這篇文章主要為大家詳細(xì)介紹了如何利用WPF DrawingContext實現(xiàn)繪制刻度條,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)或工作有一定幫助,感興趣的小伙伴可以了解一下2022-09-09