predeterminado otro open navegador from especifico enlace ejecutar directo desde con como chrome acceso abrir c# browser window default new-operator

otro - Cómo abrir en el navegador predeterminado en C#



ejecutar acceso directo con navegador no predeterminado en windows (10)

¿Intentó procesar el Process como se menciona aquí: http://msdn.microsoft.com/de-de/library/system.diagnostics.process.aspx ?

Usted podría usar

Process myProcess = new Process(); try { // true is the default, but it is important not to set it to false myProcess.StartInfo.UseShellExecute = true; myProcess.StartInfo.FileName = "http://some.domain.tld/bla"; myProcess.Start(); } catch (Exception e) { Console.WriteLine(e.Message); }

Estoy diseñando una pequeña aplicación de C # y hay un navegador web en ella. Actualmente tengo todos mis valores predeterminados en mi computadora y digo que Google Chrome es mi navegador predeterminado. Sin embargo, cuando hago clic en un enlace en mi aplicación para abrir en una nueva ventana, se abre Internet Explorer. ¿Hay alguna manera 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 diga que vaya a google y escriba "desbordamiento de pila" y haga clic derecho en el primer enlace y haga clic en "Abrir en una ventana nueva" que se abre en IE en lugar de Chrome. ¿Es esto algo que he codificado incorrectamente, o hay una configuración incorrecta en mi computadora?

=== EDIT ===

Esto es realmente molesto. Ya sé que el navegador es IE, pero antes lo tenía funcionando bien. Cuando hice clic en un enlace se abrió en cromo. Estaba usando Sharp Develop para hacer la aplicación en ese momento porque no pude hacer que c # express se iniciara. Hice una instalación nueva de Windows y como no estaba muy avanzado 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?


Abrir dinámicamente

string addres= "Print/" + Id + ".htm"; System.Diagnostics.Process.Start(Path.Combine(Environment.CurrentDirectory, addres));


Echa un vistazo al control GeckoFX .

GeckoFX es un componente de código abierto que facilita la integración de Mozilla Gecko (Firefox) en cualquier aplicación .NET Windows Forms. Escrito en C # limpio y totalmente comentado, GeckoFX es el reemplazo perfecto para el control predeterminado WebBrowser basado en Internet Explorer.


En UWP:

await Launcher.LaunchUriAsync(new Uri("http://google.com"));


Esto abrió el predeterminado para mí:

System.Diagnostics.Process.Start(e.LinkText.ToString());


Para aquellos que encuentran esta pregunta en dotnet core. Encontré una solución here

Código:

private void OpenUrl(string url) { try { Process.Start(url); } catch { // hack because of this: https://github.com/dotnet/corefx/issues/10361 if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { url = url.Replace("&", "^&"); Process.Start(new ProcessStartInfo("cmd", $"/c start {url}") { CreateNoWindow = true }); } else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) { Process.Start("xdg-open", url); } else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) { Process.Start("open", url); } else { throw; } } }


Prueba esto, camino de la vieja escuela;)

public static void openit(string x) { System.Diagnostics.Process.Start("cmd", "/C start" + " " + x); }

utilizando: openit ("www.google.com");


Solo puedes escribir

System.Diagnostics.Process.Start("http://google.com");

EDITAR : El control WebBrowser 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 evento de Navigating .


actualizar el registro con la versión actual del explorador
@ "Software / Microsoft / Internet Explorer / Main / FeatureControl / FEATURE_BROWSER_EMULATION"

public enum BrowserEmulationVersion { Default = 0, Version7 = 7000, Version8 = 8000, Version8Standards = 8888, Version9 = 9000, Version9Standards = 9999, Version10 = 10000, Version10Standards = 10001, Version11 = 11000, Version11Edge = 11001 } key.SetValue(programName, (int)browserEmulationVersion, RegistryValueKind.DWord);


public static void GoToSite(string url) { System.Diagnostics.Process.Start(url); }

eso deberia resolver tu problema