web-dev-qa-db-ja.com

.NET WebBrowserコントロールをChromeのようなより優れたブラウザに置き換えますか?

最新のブラウザを.NETアプリケーションに挿入するための比較的簡単な方法はありますか?

私が理解している限りでは、WebBrowserコントロールはIEのラッパーですが、これはIEの非常に古いバージョンであることを除けば問題にはなりません。それはCSSのねじ込み、潜在的なセキュリティリスク(レンダリングエンジンにパッチが適用されていない場合、本当に無数のバッファオーバーフローの問題が修正されることを期待できますか?)、およびその他の問題を伴います。

Visual Studio C#(エクスプレス版 - ここで何か違いがありますか?)を使用しています

私は自分のアプリケーションに優れたWebブラウザを統合したいと思います。場合によっては、ユーザー登録プロセス、私のWebサイトの機能の一部やその順序の他のものとのインターフェースを処理するためにそれを使用するだけですが、もっと誤った制御を必要とする別のアプリケーションがあります。

私は欲しい:

  • 私のアプリケーションのウィンドウ(別のウィンドウではない)の中に統合できるブラウザ
  • 最新のブラウザと同等のCSS、js、およびその他のWeb技術に対する優れたサポート
  • 「ナビゲート」、「戻る」、「リロード」などの基本的なブラウザ機能.
  • ページコードと出力への自由なアクセス。

BSDライセンスの下にあるので、私はChromeについて考えていました、しかし私はIEの最近のバージョンと同じくらい幸せになるでしょう。

可能な限り、物事をシンプルにしたいと思います。既存のWebBrowserコントロールにパッチをあてることができれば最善の方法です。これはすでに必要なものの約70%を占めていますが、それは不可能だと思います。

私はMozilla用のactiveXコントロール( http://www.iol.ie/~locka/mozilla/control.htm )を見つけましたが、それは古いバージョンのように見えます、それでそれは必ずしも改良ではありません。

私は提案を受け入れています

397
Sylverdrag

Checkout CefSharp .Netバインディング、私がしばらく前に始めたプロジェクトがコミュニティに拾われ、素晴らしいものに変わった。

このプロジェクトはChromium Embedded Frameworkをラップしており、RdioのWindowsクライアント、Windows用のFacebookメッセンジャー、Windows用のGithubを含む多くの主要プロジェクトで使用されています。

それはWPFWinformsのためのブラウザコントロールを特徴とし、たくさんの機能と拡張ポイントを持っています。 Chromiumをベースにしているので、それも膨れ上がります。

NuGetから入手してください:Install-Package CefSharp.WpfまたはInstall-Package CefSharp.WinForms

例をチェックして、あなたの考え/フィードバック/ pull-requestを与えてください: https://github.com/cefsharp/CefSharp

BSDライセンス

154
chillitom

知らない場合、ChromeはWebkit(のフォーク)を使用します。これはSafariでも使用されています。これは同じことであるいくつかの質問です。

Webkitのものは他の答えが述べるように素晴らしいものではなく、1つのバージョンはもはや機能しません(Googleコードのもの)そしてMonoのものは実験的です。誰かがまともな.NETラッパーを作ろうと努力したとしても、それは誰もが望んでいることではないというのはいいことです。 )エンジンが不足している。

更新(2014)

Awesomium と呼ばれる.NETアプリケーションにChromeを埋め込むことを可能にする新しいデュアルライセンスプロジェクトがあります。 .NET APIが付属していますが、レンダリングにはかなりの数のハックが必要です(例ではブラウザウィンドウをバッファに描画し、バッファを画像としてペイントしてタイマーで更新します)。

I thinkこれはBattlefield 3のOriginで使われているブラウザです。

更新(2016)

DotnetBrowser 、Awesomiumの商業的な代替品があります。 Chromiumをベースにしています。

81
Chris S

私は数日前からC#Webブラウザコンポーネントの代替品をテストしてきました。これが私のリストです。

1.新しいIEバージョン8,9を使用:

WebブラウザコンポーネントはIE7ではなくIE7ですか?これを変更する方法?

長所:

  • 稼働させるために必要な作業はそれほど多くない
  • iE9の場合はHTML5/CSS3のサポート、IE10の場合はフルサポート

短所:

  • ターゲットマシンにターゲットIEバージョンがインストールされている必要があります。IE10はWin7でプレビュー中です

これは多くの作業を必要とせず、IE9はいくつかの最高のCSS3とHTML5機能を欠いていますが、あなたはいくらかのHTML5とCSS3サポートを得ることができます。しかし、私はあなたがIE10を同じように走らせることができると確信しています。問題は、ターゲットシステムにIE10がインストールされていなければならないことであり、それ以来、Windows 7でプレビュー中であるので、私はそれに対して提案するでしょう。

2. OpenWebKitSharp

OpenWebKitSharpは、WebKit.NET 0.5プロジェクトに基づくWebキットエンジン用の.netラッパーです。 WebKitはChrome/Safariで使われているレイアウトエンジンです。

長所:

  • 活発に開発された
  • HTML5/CSS3のサポート

短所:

  • 実装されていない多くの機能
  • X64をサポートしていません(アプリはx86用に構築されている必要があります)

OpenWebKitは非常に素晴らしいですが、多くの機能はまだ実装されていませんが、ここでnullオブジェクト参照をスローするビジュアルスタジオでそれを使用すると、いくつかの問題が発生します。それを使っている人はほとんどすぐにjs alertが何もしないことに気づくでしょう。 mouseup、mousedownなどのイベントは機能しません。jsドラッグアンドドロップはバグがあります。

特定のバージョンのVC再配布可能な再インストールが必要なため、インストールに問題がありました。例外が発生した後、イベントログを調べて、バージョンのVCを見つけてインストールしました。

3. GeckoFX

長所:

  • モノラルで動作
  • 活発に開発された
  • HTML5/CSS3のサポート

短所:

  • D−o−e−s−n−'−t−s−u−p−p−o−r−t−−x−6−4−−(─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

GeckoFXは、WinFormsアプリケーションに埋め込むためのクロスプラットフォームのWebブラウザコントロールです。これは、Windowsでは.NET、Linuxではmonoで使用できます。 GeckoはFirefoxで使用されているレイアウトエンジンです。

私はGeckoFXが活発に開発されていないという事実に遭遇することはほとんどありませんでした。もちろん、Firefoxの1、2バージョンの背後にはありますが、それは通常のことです。それは私が必要とするすべてをします、しかし私はそれを実行するためにいくらかの時間を必要としました、これを実行するためのちょっとしたチュートリアルはここにあります:

  1. GeckoFx-Windows-16.0-0.2 をダウンロードしてください。ここでは、新しいバージョンが利用可能かどうかを確認できます GeckoFX
  2. ダウンロードした2つのDLLへの参照を追加する
  3. GeckoFXはラッパーなのでXulRunnerが必要です、 Version List に行き、どれが必要かを確かめてください。
  4. どのバージョンのXulRunnerが必要かがわかったので、 Mozilla XulRunnerリリース に移動し、バージョンフォルダー - > runtimes - > xulrunner-(your_version).en-US.win32.Zipに移動します。 xulrunner-16.0.en-US.win32.Zip
  5. すべてのファイルを解凍し、すべてのファイルをbin\Debugにコピーします(またはプロジェクトがreleaseに設定されている場合はrelease)
  6. あなたのフォームのビジュアルスタジオデザイナーに行き、ツールボックスに行き、中を右クリックしてください - >アイテムの選択 - >ブラウズ - >ダウンロードされたGeckoFX winforms dllファイルの検索 - > OK
  7. 今、あなたは新しいコントロールGeckoWebBrowserを持っているべきです

あなたが本当にChromeを使わなければならないなら、 Awesomium と呼ばれるこの製品を見てください。それは非営利的なプロジェクトのために無料ですが、ライセンスはコマーシャルのために数千ドルです。

62
formatc

私は同じ問題を抱えていました。WebBrowserは古いバージョンのIEを使用していました。レジストリを変更し、lastest IEバージョンを使用することを可能にする次のコードに出会いました。

 public enum BrowserEmulationVersion
    {
        Default = 0,
        Version7 = 7000,
        Version8 = 8000,
        Version8Standards = 8888,
        Version9 = 9000,
        Version9Standards = 9999,
        Version10 = 10000,
        Version10Standards = 10001,
        Version11 = 11000,
        Version11Edge = 11001
    }
    public static class WBEmulator
    {
        private const string InternetExplorerRootKey = @"Software\Microsoft\Internet Explorer";

        public static int GetInternetExplorerMajorVersion()
        {
            int result;

            result = 0;

            try
            {
                RegistryKey key;

                key = Registry.LocalMachine.OpenSubKey(InternetExplorerRootKey);

                if (key != null)
                {
                    object value;

                    value = key.GetValue("svcVersion", null) ?? key.GetValue("Version", null);

                    if (value != null)
                    {
                        string version;
                        int separator;

                        version = value.ToString();
                        separator = version.IndexOf('.');
                        if (separator != -1)
                        {
                            int.TryParse(version.Substring(0, separator), out result);
                        }
                    }
                }
            }
            catch (SecurityException)
            {
                // The user does not have the permissions required to read from the registry key.
            }
            catch (UnauthorizedAccessException)
            {
                // The user does not have the necessary registry rights.
            }

            return result;
        }
        private const string BrowserEmulationKey = InternetExplorerRootKey + @"\Main\FeatureControl\FEATURE_BROWSER_EMULATION";

        public static BrowserEmulationVersion GetBrowserEmulationVersion()
        {
            BrowserEmulationVersion result;

            result = BrowserEmulationVersion.Default;

            try
            {
                RegistryKey key;

                key = Registry.CurrentUser.OpenSubKey(BrowserEmulationKey, true);
                if (key != null)
                {
                    string programName;
                    object value;

                    programName = Path.GetFileName(Environment.GetCommandLineArgs()[0]);
                    value = key.GetValue(programName, null);

                    if (value != null)
                    {
                        result = (BrowserEmulationVersion)Convert.ToInt32(value);
                    }
                }
            }
            catch (SecurityException)
            {
                // The user does not have the permissions required to read from the registry key.
            }
            catch (UnauthorizedAccessException)
            {
                // The user does not have the necessary registry rights.
            }

            return result;
        }
        public static bool SetBrowserEmulationVersion(BrowserEmulationVersion browserEmulationVersion)
        {
            bool result;

            result = false;

            try
            {
                RegistryKey key;

                key = Registry.CurrentUser.OpenSubKey(BrowserEmulationKey, true);

                if (key != null)
                {
                    string programName;

                    programName = Path.GetFileName(Environment.GetCommandLineArgs()[0]);

                    if (browserEmulationVersion != BrowserEmulationVersion.Default)
                    {
                        // if it's a valid value, update or create the value
                        key.SetValue(programName, (int)browserEmulationVersion, RegistryValueKind.DWord);
                    }
                    else
                    {
                        // otherwise, remove the existing value
                        key.DeleteValue(programName, false);
                    }

                    result = true;
                }
            }
            catch (SecurityException)
            {
                // The user does not have the permissions required to read from the registry key.
            }
            catch (UnauthorizedAccessException)
            {
                // The user does not have the necessary registry rights.
            }

            return result;
        }

        public static bool SetBrowserEmulationVersion()
        {
            int ieVersion;
            BrowserEmulationVersion emulationCode;

            ieVersion = GetInternetExplorerMajorVersion();

            if (ieVersion >= 11)
            {
                emulationCode = BrowserEmulationVersion.Version11;
            }
            else
            {
                switch (ieVersion)
                {
                    case 10:
                        emulationCode = BrowserEmulationVersion.Version10;
                        break;
                    case 9:
                        emulationCode = BrowserEmulationVersion.Version9;
                        break;
                    case 8:
                        emulationCode = BrowserEmulationVersion.Version8;
                        break;
                    default:
                        emulationCode = BrowserEmulationVersion.Version7;
                        break;
                }
            }

            return SetBrowserEmulationVersion(emulationCode);
        }
        public static bool IsBrowserEmulationSet()
        {
            return GetBrowserEmulationVersion() != BrowserEmulationVersion.Default;
        }
    } 

あなただけのクラスを作成し、その中にこのコードを入れて、そしてプログラムが起動したときに次のコードを実行する必要があります。

 if (!WBEmulator.IsBrowserEmulationSet())
            {
                WBEmulator.SetBrowserEmulationVersion();
            }

VB.NET:

Imports Microsoft.Win32
Imports System
Imports System.Collections.Generic
Imports System.IO
Imports System.Linq
Imports System.Security
Imports System.Text
Imports System.Threading.Tasks

Public Enum BrowserEmulationVersion
    [Default] = 0
    Version7 = 7000
    Version8 = 8000
    Version8Standards = 8888
    Version9 = 9000
    Version9Standards = 9999
    Version10 = 10000
    Version10Standards = 10001
    Version11 = 11000
    Version11Edge = 11001
End Enum


Public Class WBEmulator
    Private Const InternetExplorerRootKey As String = "Software\Microsoft\Internet Explorer"
    Public Shared Function GetInternetExplorerMajorVersion() As Integer

        Dim result As Integer

        result = 0

        Try
            Dim key As RegistryKey
            key = Registry.LocalMachine.OpenSubKey(InternetExplorerRootKey)
            If key IsNot Nothing Then
                Dim value As Object = If(key.GetValue("svcVersion", Nothing), key.GetValue("Version", Nothing))

                Dim Version As String
                Dim separator As Integer
                Version = value.ToString()
                separator = Version.IndexOf(".")
                If separator <> -1 Then
                    Integer.TryParse(Version.Substring(0, separator), result)
                End If
            End If

        Catch ex As SecurityException
            'The user does Not have the permissions required to read from the registry key.
        Catch ex As UnauthorizedAccessException
            'The user does Not have the necessary registry rights.
        Catch

        End Try
        GetInternetExplorerMajorVersion = result
    End Function
    Private Const BrowserEmulationKey = InternetExplorerRootKey + "\Main\FeatureControl\FEATURE_BROWSER_EMULATION"

    Public Shared Function GetBrowserEmulationVersion() As BrowserEmulationVersion

        Dim result As BrowserEmulationVersion
        result = BrowserEmulationVersion.Default

        Try
            Dim key As RegistryKey = Registry.CurrentUser.OpenSubKey(BrowserEmulationKey, True)
            If key IsNot Nothing Then
                Dim programName As String
                Dim value As Object
                programName = Path.GetFileName(Environment.GetCommandLineArgs()(0))
                value = key.GetValue(programName, Nothing)
                If value IsNot Nothing Then
                    result = CType(Convert.ToInt32(value), BrowserEmulationVersion)
                End If
            End If
        Catch ex As SecurityException
            'The user does Not have the permissions required to read from the registry key.
        Catch ex As UnauthorizedAccessException
            'The user does Not have the necessary registry rights.
        Catch

        End Try

        GetBrowserEmulationVersion = result
    End Function
    Public Shared Function SetBrowserEmulationVersion(BEVersion As BrowserEmulationVersion) As Boolean

        Dim result As Boolean = False

        Try
            Dim key As RegistryKey = Registry.CurrentUser.OpenSubKey(BrowserEmulationKey, True)
            If key IsNot Nothing Then
                Dim programName As String = Path.GetFileName(Environment.GetCommandLineArgs()(0))
                If BEVersion <> BrowserEmulationVersion.Default Then
                    'if it's a valid value, update or create the value
                    key.SetValue(programName, CType(BEVersion, Integer), RegistryValueKind.DWord)
                Else
                    'otherwise, remove the existing value
                    key.DeleteValue(programName, False)
                End If
                result = True
            End If
        Catch ex As SecurityException

            ' The user does Not have the permissions required to read from the registry key.

        Catch ex As UnauthorizedAccessException

            ' The user does Not have the necessary registry rights.

        End Try

        SetBrowserEmulationVersion = result
    End Function


    Public Shared Function SetBrowserEmulationVersion() As Boolean
        Dim ieVersion As Integer
        Dim emulationCode As BrowserEmulationVersion
        ieVersion = GetInternetExplorerMajorVersion()

        If ieVersion >= 11 Then

            emulationCode = BrowserEmulationVersion.Version11
        Else

            Select Case ieVersion
                Case 10
                    emulationCode = BrowserEmulationVersion.Version10
                Case 9
                    emulationCode = BrowserEmulationVersion.Version9
                Case 8
                    emulationCode = BrowserEmulationVersion.Version8
                Case Else
                    emulationCode = BrowserEmulationVersion.Version7
            End Select
        End If

        SetBrowserEmulationVersion = SetBrowserEmulationVersion(emulationCode)
    End Function

    Public Shared Function IsBrowserEmulationSet() As Boolean
        IsBrowserEmulationSet = GetBrowserEmulationVersion() <> BrowserEmulationVersion.Default
    End Function
End Class

あなたはそれを使うことができます:

If Not WBEmulator.IsBrowserEmulationSet() Then
    WBEmulator.SetBrowserEmulationVersion()
End If

レジストリを使用して、WebブラウザコントロールのIEバージョンを設定できます。 HKLM\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATIONに移動し、browser_emulationの値を含む "yourApplicationName.exe"を追加します。browser_emulationの値を表示するには、リンクを参照してください。 http://msdn.Microsoft.com/ ja-jp/library/ee330730%28VS.85%29.aspx#browser_emulation

26
golavietnam

Mono.WebBrowser controlを見てください - これはGecko(Firefoxで使われているように)かWebKit(Safariで使われています)のどちらかを(ActiveXを使わずに)WinFormsに埋め込みます。

18
RichieHindle

私はこれが「代替」WebBrowserコントロールではないことを知っていますが、レイアウトなどにBootStrap 3+を使用しているページを表示している間にレンダリングに関するいくつかの問題を抱えていました。どうやらそれはIEに特有のもので、レンダリングにクライアントマシンにある最新のバリエーションを使うように伝えます(だから私はデフォルトだと思うのでIE7は使いません)

だからちょうど置く:

<meta http-equiv="X-UA-Compatible" content="IE=Edge" />

文書の頭のどこかにあります。

もちろんそれがあなたの文書ではない場合、これは明らかに役に立ちません(私が個人的にあなたがWebブラウザコントロールを通して作成していないページを読んでいるならそれはセキュリティホールであると思います - なぜWebブラウザを使わないだけです!)

がんばろう。

14

DotNetBrowser ライブラリを見てください。 ChromiumベースのWPFおよびWinFormsブラウザコントロールを提供します。これらは.NETアプリケーションに埋め込むのが非常に簡単です。 HTML5、CSS3、JavaScriptなど、最新のWeb標準をすべてサポートしています。レンダリングされたページは、Google Chromeの場合とまったく同じです。

このライブラリはChromiumのマルチプロセスアーキテクチャを継承しています - 各Webページは別々のChromiumプロセスでレンダリングされ、プラグインのクラッシュやその他の予期しないエラーがWebページで発生した後もアプリケーションは機能し続けます。

DotNetBrowserが提供するその他の便利な機能は次のとおりです。イベントの読み込み、ネットワークアクティビティの処理、プロキシの設定、ユーザーの操作のシミュレーション、Cookieの操作、DOMへのアクセスと変更、DOMイベントの監視、.NETからのJavaScriptの呼び出しが可能逆に、WebページでWebカメラとマイクを使用し、WebRTCベースの通信を設定し、 more とします。

詳細については APIリファレンス をご覧ください。

以下のコードスニペットは、BrowserViewを作成し、それをフォームに埋め込み、URLを読み込む方法を示しています。

using System.Windows.Forms;
using DotNetBrowser;
using DotNetBrowser.WinForms;

namespace WinForms.DotNetBrowser
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            BrowserView browserView = new WinFormsBrowserView();
            Controls.Add((Control) browserView);
            browserView.Browser.LoadURL("http://www.youtube.com");
        }
    }
}

上記の例を実行すると、次のような出力が得られます。

enter image description here

このライブラリは商用ですが、オープンソースプロジェクトや学術プロジェクトでは無料で利用できます。商用ライセンスには、さまざまなチームサイズ用のサポートパッケージが含まれています。図書館のソースコードを購入することも可能です。

独自のページの他に、コンポーネントは NuGetパッケージ およびVisual Studioマーケットプレースの VSIXパッケージ として使用できます。

12
Vladimir

私は一握りのWebkitの変種を試してみましたが、私の経験では OpenWebkitSharp が持っている進歩に勝るものはありません。 HTML5とCSS3のスコアは、Google Chromeと同じくらい近いです。とてもいいAPI​​とイベントモデル。 「実装されていない」APIがWebkitに実装されていないために発生している可能性が最も高いと思われる場合。他のものはすべてうまくいきます。

OpenWebKitSharpは、WebKit.NET 0.5プロジェクトに基づくWebキットエンジン用の.netラッパーです。それは0.5バージョンにより多くの機能を追加し、それはそのビルドよりも多くのメソッドを提供します。 OpenWebKitSharpはCairoビルド(0.5)とナイトリービルド(デフォルトではナイトリー)の両方をサポートします。バージョン1.5では安定版以上の夜間ビルドが含まれており、ビルド後に自動的にコピーされます。以前のバージョンでは、これはcairoビルドで起こります。 OpenWebKitSharpは現在、高速で安定した柔軟なWebブラウザであるGTLiteナビゲータを強化しています。

8
Vin

EO.WebBrowser を試してください。これは新しく、Chromeブラウザの最新バージョンに基づいています。それについての最も良い部分は、それが非常に使いやすく展開するだけでなく、同じDLLも.NETであるため、64ビットの両方をサポートするので、単一の.NET dllの中にすべてを詰めることです。 DLL。

6
user2540812

私はGeckoFXを使用しました、そしてそれは非常によく役立ちます。 Firefoxエンジンを使用しています。私がこれまで遭遇した唯一の注意点は、それが文書が実際に完全にロードされる前に一度 "DocumentLoaded"イベントを発行するということです。画像やものがロードされます。私は最初のものを単に無視することによってそれを修正しました、そしてそれは今までのところ間違いなく美しく働いています。

あなたはそれをここで見つけることができます: https://bitbucket.org/geckofx/

他のほとんどのライブラリと同様に、オープンソースです。

4
Teekin

更新2018年5月

Windows 10上で実行するアプリケーションをターゲットにしている場合は、 Windows Community Toolkit を使用してEdgeブラウザを.NETアプリケーションに埋め込むことができます。

WPFの例:

1)Windows Community Toolkit Nugetパッケージをインストールする

Install-Package Microsoft.Toolkit.Win32.UI.Controls

2)XAMLコード

<Window
    x:Class="WebViewTest.MainWindow"
    xmlns="http://schemas.Microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.Microsoft.com/winfx/2006/xaml"
    xmlns:WPF="clr-namespace:Microsoft.Toolkit.Win32.UI.Controls.WPF;Assembly=Microsoft.Toolkit.Win32.UI.Controls"
    xmlns:d="http://schemas.Microsoft.com/expression/blend/2008"
    xmlns:local="clr-namespace:WebViewTest"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    Title="MainWindow"
    Width="800"
    Height="450"
    mc:Ignorable="d">
    <Grid>
        <WPF:WebView x:Name="wvc" />
    </Grid>
</Window>

3)CSコード:

public partial class MainWindow : Window
{
  public MainWindow()
  {
    InitializeComponent();

    // You can also use the Source property here or in the WPF designer
    wvc.Navigate(new Uri("https://www.Microsoft.com"));
  }
}

WinFormsの例:

public partial class Form1 : Form
{
  public Form1()
  {
    InitializeComponent();

    // You can also use the Source property here or in the designer
    webView1.Navigate(new Uri("https://www.Microsoft.com"));
  }
}

詳しくはこちらの{ link を参照してください。

3
Rahul

MozNetは.NETコントロールであり、以前はほぼ放棄されたGeckoFXコントロールに基づいていましたが、完全に開発中であり、GeckoFXよりも多くの機能を備えています。あなたは Se7en Soft ウェブサイトでそれを見つけることができます。

3
user257033

2016年の更新:

提案できる3つの追加オプションがあります。

1。BrowseEmAll.Cef

Chromeエンジンを.Netアプリケーションに統合するために使用できる.Netコンポーネント。 CefGlue に基づいていますが、最新のChromeバージョンへの更新では少し高速です。また、commercial supportオプションが利用可能であり、これは一部の人にとっては便利かもしれません。もちろん、コンポーネント自体はopen sourceです。

2。BrowseEmAll.Gecko

Firefox engineを.Netアプリケーションに統合するために使用できる別の.Netコンポーネント。これは Geckofx に基づいていますが、Geckofxの現在のバージョンとは異なり、これはFirefoxの通常のリリースビルドで動作します。 Geckofxを使用するには、Firefoxを自分でビルドする必要があります。再び商用サポートは利用可能ですが、コンポーネント自体は完全にオープンソースです。

。BrowseEmAll Core API

.Netアプリケーションにすべての異なるブラウザーが必要ですか?どのBrowseEmAll Core APIを使用できますか?Chrome、Firefox、Webkit、Internet Explorerをアプリケーションに統合します。これは商用製品ですが、注意してください。

(完全な開示:私はこの会社で働いているので、私が言うすべてのものを一粒で取ります)

2
daniel.herken

EO.BrowserControlは速くて簡単です。 Chromeブラウザエンジンを搭載しており、あらゆるバージョンの.NETで動作します。

https://visualstudiogallery.msdn.Microsoft.com/fcee0646-42e7-484f-b22e-f8b2ace55dd7

注:これは商業的に認可された製品であり、私はそれを念頭に置いてそれを推進していません。他の様々なことを試した後、私はこれを選ぶことになった。

2
user2242746

GeckofxとWebkit.netは両方とも最初は有望でしたが、Internet Explorerが改善されたので、FirefoxとChromeの最新の状態を維持できませんでした。 IEのバージョンに関係なく、レジストリに移動してIE9に変更し、HTML5を許可することで修正できます。

1
user2319683

あなたがNice IEベースのコントロールを探しているなら - チェックアウト: http://code.google.com/p/csexwb2/

私は製造製品でそれを使用しました。それはかなり良く、良いデモを持っていますが、今までほどうまく維持されていないようです。

1
scotru

GeckoFX コントロールをチェックしてください。

1
Vinod

2016年を更新:

私にとって、IEに代わる唯一の信頼性が高く維持されているブラウザはEO.WebBrowserです。私は何日も何週間もかけて他の人たちを試しました。彼ら全員はある時点で私のためにショーを止めたいくつかの問題を抱えていた。

0
AntonioC

私はそこにあるすべてのブラウザを試しました。残念ながら、すべての状況下で私にとって本当にうまくいったのはEO.Browserだけでした。私は私が私が自由な解決策を選んだことを望みました、しかし私はEO.Browserで終わりました。それはかなり高価ですが、よく手入れされています。

0
AntonioC