【用C#实现启动另一程序的方法】

来源:互联网 发布:智能仓库管理系统 源码 编辑:程序博客网 时间:2024/05/18 14:23

一段实例代码,程序的目的是使用C#实现启动另一程序的方法。xp系统之家技术总监給出了我们这样一个有效的启动程序的有效方法,現在雨林木风win7和大家分享下!


代码如下:


  private void btnCreate_Click(object sender, EventArgs e) 
  ...{ 
  int hWnd = FindWindow(null, "test");//窗體的名稱 
  //check if PowerReuse is launched or not 
  //if yes, pass path of project to PowerReuse 
  //or, launch PowerReuse with specified parameter 
  if (hWnd > 0) 
  ...{ 
  MessageBox.Show("powerReuse has been launched already." + " " + hWnd.ToString()); 
  //SendMessage to PowerReuse 
  return; 
  } 
  try 
  ...{ 
  Process Main_P = new Process(); 
  //this path should be retrieved from Windows Registry, 
  //the loaction is written by Installter during process of installation. 
  Main_P.StartInfo.FileName = @"C: est.exe";//運行的exe路徑 
  //This URL is passed to PowerReuse to open 
  Main_P.StartInfo.Arguments = @"C:Tempabc.prj";//運行時的參數 
  Main_P.StartInfo.UseShellExecute = true; 
  Main_P.Start(); 
  // 
  //we have to wait for a while until UI has been initialized 
  // 
  Main_P.WaitForInputIdle(10000); 
  //although UI has been initialzied, 
  //it does not mean main form of application has been completed. 
  //we may wait for another 10 seconds 
  for (int i = 0; i < 100; i++) 
  ...{ 
  hWnd = FindWindow(null, "PowerReuse (Beta)"); 
  //hWnd = Main_P.MainWindowHandle.ToInt32() ; 
  if (hWnd > 0) break; 
  Thread.Sleep(100); 
  } 
  //Here, we check if PowerReuse is fully launched 
  if (hWnd == 0) 
  ...{ 
  //Handle exception 
  MessageBox.Show("We cannot find window handle of PowerReuse"); 
  } 
  else 
  ...{ 
  //other handling 
  // 
  MessageBox.Show(hWnd.ToString() + " " + Main_P.MainWindowHandle.ToString() + " " + Main_P.MainWindowTitle); 
  } 
  } 
  catch (Exception ex) 
  ...{ 
  MessageBox.Show(ex.Message); 
  } 
  }


详细出处参考:http://www.jb51.net/article/39982.htm

原创粉丝点击