在本網(wǎng)站中曾經(jīng)探討過在C#程序中啟動外部程序的方法,在這里有另一種方法同樣可以啟動外部的程序。
程序的目的是使用C#實(shí)現(xiàn)啟動另一程序的方法。技術(shù)總監(jiān)給出了我們這樣一個有效的啟動程序的有效方法,大家分享下:
以下是引用片段: 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";//運(yùn)行的exe路徑 //This URL is passed to PowerReuse to open Main_P.StartInfo.Arguments = @"C:Tempabc.prj";//運(yùn)行時的參數(shù) 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); } } |
新聞熱點(diǎn)
疑難解答
圖片精選