熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

C# 啟動外部程序的幾種方法

2022-06-13   來源: .NET編程 

   啟動外部程序不等待其退出

   啟動外部程序等待其退出

   啟動外部程序無限等待其退出

   啟動外部程序通過事件監視其退出

  // using SystemDiagnostics;

  private string appName = calcexe;

  /// <summary>

  /// 啟動外部程序不等待其退出

  /// </summary>

  private void button_Click(object sender EventArgs e)

  {

  ProcessStart(appName);

  MessageBoxShow(StringFormat(外部程序 {} 啟動完成! thisappName) thisText

  MessageBoxButtonsOK MessageBoxIconInformation);

  }

  /// <summary>

  /// 啟動外部程序等待其退出

  /// </summary>

  private void button_Click(object sender EventArgs e)

  {

  try

  {

  Process proc = ProcessStart(appName);

  if (proc != null)

  {

  procWaitForExit();

  if (procHasExited) MessageBoxShow(StringFormat(外部程序 {} 已經退出! thisappName) thisText

  MessageBoxButtonsOK MessageBoxIconInformation);

  else

  {

  // 如果外部程序沒有結束運行則強行終止之

  procKill();

  MessageBoxShow(StringFormat(外部程序 {} 被強行終止! thisappName) thisText MessageBoxButtonsOK MessageBoxIconExclamation);

  }

  }

  }

  catch (ArgumentException ex)

  {

  MessageBoxShow(exMessage thisText MessageBoxButtonsOK MessageBoxIconError);

  }

  }

  /// <summary>

  /// 啟動外部程序無限等待其退出

  /// </summary>

  private void button_Click(object sender EventArgs e)

  {

  try

  {

  Process proc = ProcessStart(appName);

  if (proc != null)

  {

  procWaitForExit();

  MessageBoxShow(StringFormat(外部程序 {} 已經退出! thisappName) thisText

  MessageBoxButtonsOK MessageBoxIconInformation);

  }

  }

  catch (ArgumentException ex)

  {

  MessageBoxShow(exMessage thisText MessageBoxButtonsOK MessageBoxIconError);

  }

  }

  /// <summary>

  /// 啟動外部程序通過事件監視其退出

  /// </summary>

  private void button_Click(object sender EventArgs e)

  {

  try

  {

  //啟動外部程序

  Process proc = ProcessStart(appName);

  if (proc != null)

  {

  //監視進程退出

  procEnableRaisingEvents = true;

  //指定退出事件方法

  procExited += new EventHandler(proc_Exited);

  }

  }

  catch (ArgumentException ex)

  {

  MessageBoxShow(exMessage thisText MessageBoxButtonsOK MessageBoxIconError);

  }

  }

  /// <summary>

  ///啟動外部程序退出事件

  /// </summary>

  void proc_Exited(object sender EventArgs e)

  {

  MessageBoxShow(StringFormat(外部程序 {} 已經退出! thisappName) thisText

  MessageBoxButtonsOK MessageBoxIconInformation);


From:http://tw.wingwit.com/Article/program/net/201311/13876.html
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.