仿照Chrome的Multi-process Architecture

2013061010:06
出處:http://www.dotblogs.com.tw/larrynung/archive/2013/02/23/91903.aspx

筆者在上一篇[C#]如何在程式中內嵌其它應用程式稍稍整理了一下怎樣嵌入外部程式到UI上,這邊要接著嘗試仿照Chrome的Multi-process Architecture做一個簡易的瀏覽器。

 

這邊筆者首先準備個很簡易的UI,上方放一個內建的TabControl,而下方則是放置個按鈕,期望使用時按下下面的按鈕上方就可以加入一頁瀏覽器分頁。

image

 

另外還要準備一個瀏覽器頁面用來讓我們內嵌到瀏覽器分頁中。

image

 

接著進入程式的撰寫,這邊筆者透過Command Line Parser去做命令列參數處理。當程式透過滑鼠點擊開啟,預設是沒有帶任何的命令列參數,這時叫出主要的表單。若是有帶特定的參數,則改叫出瀏覽器頁面讓已開啟的程式嵌進瀏覽器分頁。

01 [STAThread]
02 static void Main(string[] args)
03 {
04     Application.EnableVisualStyles();
05     Application.SetCompatibleTextRenderingDefault(false);
06  
07     var options = new Options();
08     ICommandLineParser parser = new CommandLineParser();
09     if (parser.ParseArguments(args, options))
10     {