在本网站中曾经探讨过在C#程序中启动外部程序的方法,在这里有另一种方法同样可以启动外部的程序。
程序的目的是使用C#实现启动另一程序的方法。技术总监給出了我们这样一个有效的启动程序的有效方法,大家分享下:
以下是引用片段: 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); } } |
新闻热点
疑难解答
图片精选