webbrowser software net microsoft internet hkey_current_user featurecontrol feature_browser_emulation feature c# internet-explorer browser webbrowser-control internet-explorer-9

c# - feature_browser_emulation - hkey_current_user software microsoft internet explorer main featurecontrol feature



Control WebBrowser para usar IE9 (5)

Quiero que el control WebBrowser use IE9. IE9 está instalado en la computadora, pero el control WebBrowser todavía está utilizando IE8.

Lo verifiqué con http://www.whatbrowser.org/en/ . Intento hacer algunos cambios en el registro (encontré una solución aquí) pero no está funcionando.


Los navegadores mienten sobre su "agente de usuario" para dar un descanso a los sitios web. Estás ejecutando 9, no puedes tener 8 y 9 instalados al mismo tiempo a menos que uses la versión beta. Consulte esta publicación en el blog para obtener detalles sobre la cadena del agente de usuario.

Si quiere asegurarse, mire la versión DLL que se carga. Project + Properties, Debug, marque "Depuración de código no administrado". Comience su programa, Depurar + Romper todo. Debug + Windows + Modules y ubique ieframe.dll en la lista. La columna del número de versión debe decirte. Me sale "8.00.7600.16385 (win7_rtm.090713-1255)", la versión de lanzamiento de Win7. No tengo IE9 instalado todavía.


Creo que es la cadena del agente de usuario que se está pasando al sitio. Se trata de identificarlo erróneamente como IE8, ya que podría no cumplir los requisitos de su lógica para que coincida con IE9. Puedo ver que lo mismo sucede en mi caja también. Puede especificar la cadena del agente de usuario para usar si lo desea. Agrega esto a tu proyecto

En sus declaraciones de uso, agregue ...

using System.Runtime.InteropServices;

Dentro de tu clase de forma agrega ....

[DllImport("urlmon.dll", CharSet = CharSet.Ansi)] private static extern int UrlMkSetSessionOption(int dwOption, string pBuffer, int dwBufferLength, int dwReserved); const int URLMON_OPTION_USERAGENT = 0x10000001; public void ChangeUserAgent(String Agent) { UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, Agent, Agent.Length, 0); }

Luego solo llámalo a algún lugar de tu código ... tal vez el constructor o el evento form_load.

ChangeUserAgent("Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)");


Use esto en el encabezado de HTML:

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

De otra manera:

HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Internet Explorer / MAIN / FeatureControl / FEATURE_BROWSER_EMULATION / yourexename.exe - REG_DWORD = 9000 (decimal)


Parece que podría ser su script de detección de página. Pruebe este sitio (http://www.whatismybrowser.com/) . Sé que otros sitios me dieron información incorrecta, pero este sitio identificó correctamente el navegador como la versión de IE que se instaló en mi máquina.


Puede intentar agregar el valor de registro que informa su control WebBrowser de la versión de IE que desea ejecutar para su aplicación.

Tuve un problema similar - más aquí