2010-03-10 84 views
3

我正在VB.Net中編寫桌面應用程序,並且我想包含一個Web瀏覽器控件以自動執行用戶可能必須在瀏覽器。我必須呈現網頁,因此我不想使用網絡請求直接撥打電話。當我發佈應用程序時,我是否必須關心用戶在其計算機上安裝哪個版本的Internet Explorer?他們的任何第三方,免費提供,穩定的網頁瀏覽器控件可用於VB.Net,人們正在使用?在VB.Net桌面應用程序中包含Web瀏覽器控件的建議

回答

5

你總是可以忽略整個IE問題,使用嵌入在您的應用程序Mozilla的引擎:

geckofx

「爲 嵌入Mozilla的Gecko的(火狐)的一個開放源代碼組件 .NET應用程序。「

http://code.google.com/p/geckofx/

+0

看起來不錯。任何人都知道使用geckofx的VB.Net項目? – ajl

+0

但它的.net - 沒關係(好吧,幾乎總是!)反射器是你的朋友... –

+0

這不是說您現在負責爲用戶推出針對Mozilla引擎的修補程序嗎?安全修補程序等? – MarkJ

1

幾個版本的Visual Studio支持Web瀏覽器控件。這裏是一篇關於如何實現其中的文章。

http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.aspx

Web瀏覽器控件將與不同版本的Internet Explorer的工作,但將僅限於由該版本的Internet Explorer支持的功能。

本文基於Visual Studio 2008,但在文章的右上角有關於如何使用Web瀏覽器控件的鏈接,以及早期版本的Visual Studio。

+0

感謝您的鏈接。我最擔心的是將這個應用發佈到500個用戶,並且無法控制他們擁有哪個版本的IE。 – ajl

1

如果嵌入在應用程序中WebBrowser控件,你真正做的是嵌入的COM對象。在運行時,您的應用程序將CoCreateInstance()Webbrowser控件,它將從當前在機器上的SHDOCVW.DLL或IEFRAME.DLL版本加載它。因此,用簡單的英語,您將獲得IE6,IE7或IE8 Webbrowser控件,具體取決於機器上安裝的內容。

然而,實際的差異很小,因爲接口很久以前就已經發布了,並且沒有改變這些版本。無論如何,某些接口(如IOleCommandTarget)支持的不同命令的差異被管理層抽象掉了,因此您不必擔心這一點。最大的區別是呈現差異,因爲IE6和IE8之間的CSS一致性存在巨大的差異。您將不得不使用Microsoft's app compat VHDs來測試各種版本。

當我參與IE團隊應用程序兼容性時,Webbrowser控件是一筆巨大的交易;該團隊非常努力地確保這種行爲不會因爲這種情況而退化,即定製的企業VB應用程序託管WebOC。

雖然如果您決定使用開源解決方案與您的應用程序一起發佈,我可以建議WebKit嗎?它的佈局引擎非常好,源代碼維護得很好並且易於閱讀,但是您必須編寫自己的託管託管層。 Gecko代碼很難讀取和調試。

相關問題