Frage

ich IE9-Beta vor kurzem aktualisiert. Nun, in meiner .NET (3.5) WinForm Anwendung Ich möchte Verwendung WebBrowser Kontrolle.

Meine Frage ist also, ob die WebBrowser Steuerung alle Eigenschaften und Funktionen von IE9 ausstellen?

Meine Sorge ist, möchte ich einige SVG-Grafiken auf sie machen.

War es hilfreich?

Lösung

Die IE9 "Version" des WebBrowser-Steuerelement, wie die IE8-Version, ist eigentlich mehrere Browser in einem. Anders als bei der IE8-Version, haben Sie ein wenig mehr Kontrolle über die Rendering-Modus innerhalb der Seite durch den Doctype zu verändern. Natürlich, um den Browser-Modus können Sie Ihre Registrierung wie der frühere Antwort setzen müssen geändert werden. Hier ist ein reg-Datei Fragment für FEATURE_BROWSER_EMULATION:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
"contoso.exe"=dword:00002328

Dies ist die komplette Reihe von Codes:

  • 9999 (0x270F) - Internet Explorer 9. Webpages sind in IE9 angezeigt Standard-Modus, unabhängig von der ! DOCTYPE-Richtlinie.
  • 9000 (0x2328) - Internet Explorer 9. Webpages enthalten standardbasierte DOCTYPE Richtlinien sind in IE9-Modus angezeigt.
  • 8888 (0x22B8) -Webpages sind angezeigt in IE8-Standards-Modus, unabhängig von der! DOCTYPE-Richtlinie.
  • 8000 (0x1F40) - Webpages enthalten standardbasierte! DOCTYPE-Richtlinien in IE8-Modus angezeigt werden.
  • 7000 (0x1B58) - Webpages enthalten standardbasierte! DOCTYPE-Richtlinien in IE7-Standards-Modus angezeigt werden.

Die vollständigen Dokumente:

http://msdn.microsoft. com / en-us / library / ee330730% 28VS.85% 29.aspx # browser_emulation

Andere Tipps

WebBrowser Steuerelement verwenden, was Version von IE Sie installiert haben, aber aus Kompatibilitätsgründen wird es Seiten in IE7 Standards-Modus standardmäßig machen.

Wenn Sie die Vorteile der neuen IE9 nehmen wollen verfügt, sollten Sie das Meta-Tag <meta http-equiv="X-UA-Compatible" content="IE=9" > innerhalb des <head>-Tag Ihrer HTML-Seite hinzufügen.

Diese Meta-Tag, bevor irgendwelche Links zu CSS hinzugefügt werden müssen, Dateien JavaScript etc., die auch in Ihrem <head> zur Arbeit sind zwar richtig (nur andere <meta>-Tags oder die <title> Tag, bevor es kommen kann).

Eine Alternative ist, einen Registrierungseintrag hinzuzufügen:

  

HKLM> Software> Microsoft> Internet Explorer> Haupt> Featurecontrol> FEATURE_BROWSER_EMULATION

Und dort hinzufügen ‚myApplicationName.exe‘ mit dem Wert ‚9000‘ das WebBrowser-Steuerelement Anzeigeseiten in IE9-Modus zu erzwingen. Obwohl es andere Werte können Sie auch verwenden zu beachten, dass diese Dokumente nicht ganz korrekt sind, da es nicht möglich erscheint, eine Seite zu bekommen in IE 8-Modus, was Wert, den Sie verwenden zu machen.

Das Hinzufügen der Registrierungsschlüssel auf dem gleichen Weg in HKCU statt HKLM wird auch funktionieren - das ist nützlich, da zu HKLM Schreiben erfordert Administratorrechte, wo als HKCU nicht der Fall ist.

Gott sei Dank ich diese gefunden. Im Folgenden ist äußerst wichtig:

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

Ohne dies keiner der Berichte hatte ich gewesen Erzeugungs funktionieren würde Post IE9 installieren trotz in IE8 großen gearbeitet. Sie würden ordnungsgemäß in einem Web-Browser-Steuerelement angezeigt, aber es wären fehlende Buchstaben, aufgebockt white space up, etc, wenn ich .PRINT () aufgerufen. Sie waren nur einfache HTML der in der Lage sein sollte, auch in Mosaic gemacht zu werden. heh nicht sicher, warum der IE7-Kompatibilitätsmodus werde drunter und drüber. Bemerkenswert ist, könnten Sie () die gleiche Seite 5 mal .PRINT und haben es verschiedene Buchstaben jedes Mal fehlen. Es wäre sogar in PDF-Ausgabe trägt über, so ist es auf jeden Fall der Browser.

Ein Hinweis zu 64-Bit-Windows-die ein paar Leute zu stolpern scheint. Wenn Ihre App unter 64-Bit-Windows ausgeführt wird, werden Sie wahrscheinlich unter den DWORD gesetzt haben [HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ Internet Explorer \ Main \ Featurecontrol \ FEATURE_BROWSER_EMULATION] statt.

Nur um komplette ...

Für 32-Bit-OS müssen Sie einen Registrierungseintrag hinzufügen:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION

******* OR *******

Für 64-Bit-OS müssen Sie einen Registrierungseintrag hinzufügen:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION

Dieser Eintrag muss ein DWORD sein, mit der Name der Name Ihres ausführbar ist, dass Hosts das WebBrowser-Steuerelement; das heißt:.

myappname.exe (DO NOT USE "Contoso.exe", wie er in der MSDN-Seite ... es ist nur ein Platzhalter Name)

es dann einen DWORD Wert geben, entsprechend der Tabelle auf:

http: // msdn. microsoft.com/en-us/library/ee330730(v=vs.85).aspx#browser_emulation

I geändert 11001 dezimal oder 0x2AF9 hex --- (IE 11 EMULATION), da dies nicht der Standardwert ist. (Wenn Sie IE haben 11 installiert - oder was auch immer Version)

Die MSDN-Artikel Notizen auf mehreren anderen Registry Änderungen enthält, das Web-Browser Internet Explorer Verhalten beeinflusst.

Ich weiß, dass dieser Thread ist alt und es gibt bereits umfassende Antworten.

Für den Fall, Sie dies nicht wissen:

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

Sie müssen nicht IE Versionsnummer codieren wie

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

Ich bin vollkommen einverstanden mit der Lösung zur Verfügung gestellt, aber ich denke, eine wenig Klarheit wichtig ist, glaube ich, könnte notwendig sein.

Für jeden Prozess (lesen Sie auch: vshost.exe, yourWinformApplication.exe.svchost, oder den Namen Ihres anwendung.exe), die einen DWORD mit dem Wert zur Verfügung gestellt, in meinem Fall hinzufügen müssen lasse ich 9000 (in dezimal ) in Anwendungsnamen und reibungslos und fehlerfrei Skript ausgeführt wird.

Der häufigste Fehler ist zu glauben, dass es notwendig ist, hinzuzufügen „contoso.exe“ AS IS und denke, es ist alle Arbeit!

Ja, WebBrowser Steuerelement verwendet, was auch immer Version von IE Sie installiert haben. Dies bedeutet natürlich, dass, wenn Sie Ihre Anwendung auf einer Maschine mit IE 8 laufen dann die IE 9 Funktionen, die Sie hängen von nicht zur Verfügung.

Ich kam zu dieser Lösung und es nicht für mich gearbeitet! Weil ich 64bit wurde mit hatte ich die Registrierung ersetzen:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION

Statt des einen, dass jeder spricht über:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]

Ich mochte die (C #) Code in der folgenden, die die Registrierungseinstellungen für Ihre Anwendung setzt. Nicht sicher, ob es nach der Installation abgeschnitten werden, obwohl, wenn Berechtigungen erforderlich sind. Für mich löste es ein Problem mit WebSocket nicht in einem WebBrowser-Steuerelement in WPF zur Verfügung steht.

C # Web-Browser Ajax-Aufruf

Ich hatte das gleiche Problem, und die Registrierungs Antworten hier nicht funktioniert hat.

Ich hatte eine Browser-Steuerung in einem neuen Version von meinem Programm, das gut funktionierte auf XP, scheiterte in Windows 7 (64 Bit). Die alte Version arbeitete sowohl auf XP und Windows 7.

Die Webseite im Browser angezeigt verwendet einige seltsame Plugin für die Ansicht alte SVG Karten (ich glaube, es ist ein Java-Applet).

Stellt sich heraus, das Problem zu DEP-Schutz in Windows verwandt 7.

Alte Versionen von Dotnet 2 haben die DEP Forderungsflag in der EXE-Datei nicht festgelegt, sondern von Dotnet 2, SP 1 vorwärts kam es (yep, das Kompilieren Verhalten und damit das Laufzeitverhalten von exe verändert je nachdem, welcher Maschine Sie zusammengestellt auf , nett ...).

Es ist auf einem MSDN-Blog dokumentiert NXCOMPAT und der C # -Compiler . Zu zitieren:. Dies wird zweifellos einige Entwickler überraschen ... ein Framework Service Pack herunterladen, neu zu kompilieren, führen Sie Ihre Anwendung, und Sie sind jetzt IP_ON_HEAP Ausnahmen bekommen

die folgende auf die Post Build in Visual Studio Hinzufügen, wird DEP für die exe aus, und alles funktioniert wie erwartet:

all "$(DevEnvDir)..\tools\vsvars32.bat"
editbin.exe /NXCOMPAT:NO "$(TargetPath)"

In Bezug auf Whitehawk die akzeptierte Antwort. Ich versuche nur, ein bisschen praktische Erfahrung hinzuzufügen. Hätte nur versucht, eine Kommentar zu schreiben, aber so klagt er zu lang ist.

Im Grunde genommen ohne IE 9 installiert, der Registrierungsschalter FEATURE_BROWSER_EMULATION wird nicht funktionieren AT ALL.

Zum Beispiel meine eigene Erfahrung heute ich versuchte, die .net webcontrol zur Arbeit mit IE10-Modus zu bekommen, weil ein HTML Ich versuche, werde zu machen nicht die Arbeit mit .netControl unter VS2012, und nicht einmal der Arbeit, wenn ich die Last html direkt auf IE8, noch wird CSS macht nicht richtig (auch wenn ich nicht blockiert Inhalt sagen). Aber ich habe die gleiche HTML-ok mit IE10 auf einem Freund gewinnt 8 Maschine getestet. Deshalb versuche ich, den .net webControl auf IE-10-Modus zu setzen, sondern nur immer wieder versagt ...

dachte Nun ich dies ist bcos meine win 7 Maschine nur habe IE8 installiert, so unabhängig, welchen Wert I set auf den FEATURE_BROWSER_EMULATION Schalter (Wert IE9, IE10 IE11), es wird nur nicht funktionieren!

Dann habe ich heruntergeladen und installiert IE 10 auf meinem Win-7-Maschine. Dennoch wird es nicht funktionieren, dann habe ich die FEATURE_BROWSER_EMULATION, fing es an zu arbeiten!

Auch bemerkte ich, unabhängig davon, welchen Wert I set, legen Sie es sogar auf dem Wert 0 standardmäßig wird die webControl noch IE-10-Modus verwendet, die für mich nach wie vor funktioniert.

Um es zusammenzufassen, Wenn Sie IE X installiert haben, aber Sie wollen Ihre .Net webControl an die Arbeit unter IE (X + N) N> 0 modo, Zwei Dinge Sie tun müssen:

  1. Gehen Sie zu MS-Website und laden und installieren Sie IE (X + N) auf dem Computer, Sie wird nach der Installation neu gestartet werden müssen.

  2. anwenden Whitehawk Antwort.

Grundsätzlich gilt: Um den Wert dieser Funktion zu steuern, indem Sie die Registrierung verwenden, fügen Sie den Namen der ausführbaren Datei an die folgende Einstellung und Wert einstellen, um die gewünschte Einstellung entsprechen.

HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER)
   SOFTWARE
      Microsoft
         Internet Explorer
            Main
               FeatureControl
                  FEATURE_BROWSER_EMULATION
                     contoso.exe = (DWORD) 00009000

Windows Internet Explorer 8 und höher. Die FEATURE_BROWSER_EMULATION Funktion des Standard-Emulationsmodus für Internet Explorer definiert und unterstützt die folgenden Werte.

Wert Beschreibung

  • 11001 (0x2AF9 Internet Explorer 11. Webpages sind in IE11 angezeigt Rand-Modus, unabhängig von der! DOCTYPE-Richtlinie.

    11000 (0x2AF8) IE11. Webpages enthalten standardbasierte! DOCTYPE Richtlinien werden in IE11 Kantenmodus angezeigt. Der Standardwert für IE11.

    10001 (0x2711) Internet Explorer 10. Webpages sind in IE10 angezeigt Standard-Modus, unabhängig von der! DOCTYPE-Richtlinie.

    10000 (0x02710) Internet Explorer 10. Webpages enthalten standardbasierte! sind in IE10 Standards DOCTYPE Richtlinien angezeigt Modus. Der Standardwert für Internet Explorer 10.

    9999 (0x270F) Windows Internet Explorer 9. Webpages werden angezeigt in IE9-Standards-Modus, unabhängig von der! DOCTYPE-Richtlinie.

    9000 (0x2328) Internet Explorer 9. Webpages enthalten standardbasierte! sind DOCTYPE Richtlinien im IE9-Modus angezeigt. Der Standardwert für den Internet Explorer 9.

    Wichtig Im Internet Explorer 10, Webpages enthalten standardbasierte! sind in IE10 Standards DOCTYPE Richtlinien angezeigt Modus.

    8888 (0x22B8) Webpages angezeigt werden, in IE8-Standards-Modus, unabhängig von der! DOCTYPE-Richtlinie.

    8000 (0x1F40) Webpages enthalten standardbasierte! DOCTYPE-Richtlinien werden im IE8-Modus angezeigt. Der Standardwert für Internet Explorer 8 Wichtig Im Internet Explorer 10, Webpages enthalten standardbasierte! sind in IE10 Standards DOCTYPE Richtlinien angezeigt Modus.

    7000 (0x1B58) Webpages enthalten standardbasierte! DOCTYPE-Richtlinien wird in IE7 Standards-Modus angezeigt. Der Standardwert für Anwendungen die WebBrowser-Control-Hosting.

Voll ref hier

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top