2.2. Process方法簡介
Process方法,位於System.Diagnostics命名空間。MSDN的定義為:Process 組件提供對正在計算機上運行的進程的訪問。對於啟動、停止、控制和監視應用程序等任務,Process 組件是很有用的工具。使用 Process 組件,可以獲取正在運行的進程的列表,或者可以啟動新的進程。Process 組件用於訪問系統進程。初始化 Process 組件後,可使用該組件來獲取有關當前運行的進程的信息。此類信息包括線程集、加載的模塊(.dll 和 .exe 文件)和性能信息(如進程當前使用的內存量)。因此,以Process方法來打開外部批處理文件是托管環境下值得推薦的方法。
當然,以Process方法來打開外部程序,並不是唯一的辦法,最簡單的莫過於調用WinAPI程序來實現,當然這又牽扯到非托管代碼的范疇,我們就不再多羅嗦了。
我的另一篇拙作《在WinForm應用程序中打開Url》中,也有相關的論述,具體的實現見代碼部分的分析。
2.3. 基本的系統結構如下:
3. 實現方法:
3.1 創建Windows Form 應用程序,設置程序名稱為Anytao.IPHelper,並向窗體文件中拖入一個ComboBox和一個按鈕控件,分別命名為:cbbIP和btnIPConfig,如下圖所示:
3.2 雙擊btnIpConfig按鈕,實現其Click事件,如下,具體代碼見注釋:
private void btnIpconfig_Click(object sender, EventArgs e)
{
try
{
//使用Process方法加載外部應用
Process myProcess = new Process();
myProcess.StartInfo.FileName = Application.StartupPath + @"\config\" + cbbIP.SelectedItem.ToString() + ".bat";
MessageBox.Show(myProcess.StartInfo.FileName);
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.RedirectStandardOutput = true;
myProcess.Start();
myProcess.WaitForExit();
}
catch (FileNotFoundException ex)
{
MessageBox.Show(ex.Message);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}