十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
1. 啟動(dòng)外部程序,不等待其退出。 2. 啟動(dòng)外部程序,等待其退出。 3. 啟動(dòng)外部程序,無限等待其退出。 4. 啟動(dòng)外部程序,通過事件監(jiān)視其退出。 // using System.Diagnostics; private string appName = "calc.exe"; ////// 1. 啟動(dòng)外部程序,不等待其退出 /// private void button1_Click(object sender, EventArgs e) { Process.Start(appName); MessageBox.Show(String.Format("外部程序 {0} 啟動(dòng)完成!", this.appName), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); } ////// 2. 啟動(dòng)外部程序,等待其退出 /// 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é)束運(yùn)行則強(qiáng)行終止之。 proc.Kill(); MessageBox.Show(String.Format("外部程序 {0} 被強(qiáng)行終止!", this.appName), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } } catch (ArgumentException ex) { MessageBox.Show(ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); } } ////// 3. 啟動(dòng)外部程序,無限等待其退出 /// 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); } } ////// 4. 啟動(dòng)外部程序,通過事件監(jiān)視其退出 /// private void button4_Click(object sender, EventArgs e) { try { //啟動(dòng)外部程序 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); } } //////啟動(dòng)外部程序退出事件 /// void proc_Exited(object sender, EventArgs e) { MessageBox.Show(String.Format("外部程序 {0} 已經(jīng)退出!", this.appName), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);