2012-02-21 173 views
0

我想從我的BHO在C#中完成一個新選項卡。 Process.Start(u)打開一個新窗口,而不是一個標籤,並調用默認瀏覽器,這可能不是IE。如何從BHO打開新選項卡?

我想打開新標籤頁,提示用戶下載並安裝最新版本的BHO。

+0

我知道IE7不支持這個。有沒有一個特定的IE版本? – 2012-02-21 01:44:15

回答

3

從BHO執行此操作的正確方法是使用IWebBrowser2::Navigate2()doc link)並通過navOpenInNewTabdoc link)。

互操作exists at pinvoke.net,所以你可以從那開始。

您可以通過以下步驟從您的網站的IWebBrowser2的指針:

  1. 的QueryInterface()你的網站IID_IServiceProvider。
  2. QueryService()SID_STopLevelBrowser,IID_IServiceProvider的IServiceProvider。
  3. QueryService()SID_SWebBrowserApp的最高級別IServiceProvider,IID_IWebBrowser2。

...但我不知道如何在C#中做到這一點。

+0

謝謝。我沒有意識到可以使用TargetFrameName來打開一個新的選項卡:http://msdn.microsoft.com/en-us/library/cc491275%28v=vs.90%29.aspx它是一個「本機」C#方法,不需要做任何調整 – Julien 2012-02-22 00:50:16

+0

通過定位_blank或其他類似的東西,你可能會得到一個新標籤,但用戶可以在一定程度上配置該行爲,因此它可能是一個新窗口。 – 2012-02-22 01:05:41