An instance of a method that starts another program with C

  • 2020-05-17 06:13:38
  • OfStack


  private void btnCreate_Click(object sender, EventArgs e) 
  ...{ 
  int hWnd = FindWindow(null, "test");// Name of form  
  //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";// running exe The path  
  //This URL is passed to PowerReuse to open 
  Main_P.StartInfo.Arguments = @"C:Tempabc.prj";// Run-time parameters  
  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); 
  } 
  }

Related articles: