Estoy diseñando una pequeña aplicación C # y hay un navegador web en ella. Actualmente tengo todos mis valores predeterminados en mi computadora, dicen que Google Chrome es mi navegador predeterminado, pero cuando hago clic en un enlace en mi aplicación para abrir en una nueva ventana, se abre Internet Explorer. ¿Hay alguna forma de hacer que estos enlaces se abran en el navegador predeterminado? ¿O hay algo mal en mi computadora?
Mi problema es que tengo un navegador web en la aplicación, así que digamos que vaya a google y escriba "desbordamiento de pila" y haga clic derecho en el primer enlace y haga clic en "Abrir en una nueva ventana" se abre en IE en lugar de Chrome. ¿Es esto algo que he codificado incorrectamente o hay una configuración incorrecta en mi computadora?
=== EDITAR ===
Esto es realmente molesto. Ya soy consciente de que el navegador es IE, pero antes lo tenía funcionando bien. Cuando hice clic en un enlace, se abrió en Chrome. Estaba usando desarrollo agudo para hacer la aplicación en ese momento porque no pude hacer que c # express se iniciara. Hice una nueva instalación de Windows y como no estaba muy avanzada en mi aplicación, decidí comenzar de nuevo, y ahora tengo este problema. Es por eso que no estoy seguro de si es mi computadora o no. ¿Por qué IE iniciaría todo el navegador cuando se hace clic en un enlace en lugar de simplemente abrir el nuevo enlace en el navegador predeterminado?
Respuestas:
Solo puedes escribir
EDITAR : El
WebBrowser
control es una copia incrustada de IE.Por lo tanto, cualquier enlace dentro de él se abrirá en IE.
Para cambiar este comportamiento, puede manejar el
Navigating
evento.fuente
Process.Start(e.Url.ToString())
Para aquellos que encuentran esta pregunta en dotnet core. Encontré una solución aquí
Código:
fuente
open
comando en lugar dexdg-open
RuntimeInformation.IsOSPlatform(OSPlatform.OSX)
¿O ya será cierto en Linux?xdg-command
devuelve "xdg-open: comando no encontrado". Luego probé conopen
comando y funciona.eso debería resolver tu problema
fuente
¿Intentó
Process
como se menciona aquí: http://msdn.microsoft.com/de-de/library/system.diagnostics.process.aspx ?Podrías usar
fuente
UseShellExecute
el valor predeterminado es verdadero.true
.Process.Start(url)
, no abre una nueva ventana del navegador.Echa un vistazo al control GeckoFX .
fuente
Prueba esto, a la vieja escuela;)
utilizando: openit ("www.google.com");
fuente
Después de investigar mucho, creo que la mayor parte de la respuesta dada no funcionará con dotnet core. 1
System.Diagnostics.Process.Start("http://google.com")
.; - No funcionará con el núcleo dotnet2. Funcionará pero bloqueará la apertura de la nueva ventana en caso de que el navegador predeterminado sea Chrome
A continuación se muestra el más simple y funcionará en todos los escenarios.
fuente
Esto abrió el valor predeterminado para mí:
fuente
dotnet core
arroja un error si lo usamosProcess.Start(URL)
. El siguiente código funcionará endotnet core
. Puede agregar cualquier navegador en lugar deChrome
.fuente
En UWP:
fuente
Abrir dinámicamente
fuente
actualice el registro con la versión actual de explorer
@ "Software \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BROWSER_EMULATION"
fuente