¿Cómo puedo tener un botón en mi aplicación de escritorio que hace que el navegador predeterminado del usuario se inicie y muestre una URL proporcionada por la lógica de la aplicación.¿Cómo puedo iniciar una URL en el navegador predeterminado de los usuarios desde mi aplicación?
30
A
Respuesta
57
Process.Start("http://www.google.com");
19
Process.Start ([su URL]) es de hecho la respuesta, en todos los casos, pero muy de nicho. Para completar, sin embargo, mencionaré que nos topamos con un caso tan específico hace un tiempo: si está intentando abrir un url "file: \" (en nuestro caso, para mostrar la copia local instalada de nuestra webhelp), al lanzar desde el shell, los parámetros de la url fueron descartados.
Nuestra solución en lugar hacker, que no recomiendo a menos que encuentre un problema con la solución "correcta", parecía algo como esto:
En el controlador de clic del botón:
string browserPath = GetBrowserPath();
if (browserPath == string.Empty)
browserPath = "iexplore";
Process process = new Process();
process.StartInfo = new ProcessStartInfo(browserPath);
process.StartInfo.Arguments = "\"" + [whatever url you're trying to open] + "\"";
process.Start();
la función fea que no se debe utilizar a menos Process.Start ([su URL]) no hace lo que se puede esperar que va a:
private static string GetBrowserPath()
{
string browser = string.Empty;
RegistryKey key = null;
try
{
// try location of default browser path in XP
key = Registry.ClassesRoot.OpenSubKey(@"HTTP\shell\open\command", false);
// try location of default browser path in Vista
if (key == null)
{
key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http", false); ;
}
if (key != null)
{
//trim off quotes
browser = key.GetValue(null).ToString().ToLower().Replace("\"", "");
if (!browser.EndsWith("exe"))
{
//get rid of everything after the ".exe"
browser = browser.Substring(0, browser.LastIndexOf(".exe") + 4);
}
key.Close();
}
}
catch
{
return string.Empty;
}
return browser;
}
Cuestiones relacionadas
- 1. ¿Cómo iniciar una aplicación desde un navegador?
- 2. ¿Puedo iniciar una aplicación desde otra aplicación en el iPhone
- 3. Abrir una URL en el navegador predeterminado en una aplicación de escritorio de Windows 8
- 4. Iniciar safari desde una aplicación Mac
- 5. API especial para iniciar una aplicación desde mi aplicación
- 6. ¿Cómo puedo abrir un archivo HTML en el navegador predeterminado desde una aplicación Java Swing?
- 7. ¿Cómo puedo iniciar Safari desde una aplicación de iPhone?
- 8. Acerca de iniciar la aplicación Android desde una URL
- 9. ¿Cómo puedo abrir un enlace en el navegador web predeterminado desde una HTA?
- 10. ¿Cómo puedo obtener un hipervínculo FlowDocument para iniciar el navegador y acceder a la URL en una aplicación WPF?
- 11. ¿Cómo recibo una "URL compartida" desde el navegador?
- 12. Iniciar aplicación desde el paquete de aplicación
- 13. Al iniciar una actividad de ACTION_VIEW para abrir el navegador, ¿cómo regreso a mi aplicación?
- 14. Iniciar una aplicación de escritorio desde un sitio web
- 15. C#: abra un navegador y publique en una url desde una aplicación de escritorio de Windows
- 16. Abra el navegador nativo desde una aplicación de Android
- 17. ¿Cómo puedo leer una imagen desde una URL en Java?
- 18. Linux: comando para abrir URL en el navegador predeterminado
- 19. ¿Cómo puedo volver a iniciar la aplicación que abrió mi esquema de URL personalizado?
- 20. ¿Cómo iniciar una URL en IE10 desde una aplicación Windows 8 WInJS?
- 21. ¿Puedo rastrear qué palabras clave llevan a los usuarios a encontrar mi aplicación en Google Play?
- 22. ¿Cómo puedo iniciar y seguir ejecutando hsqldb en modo servidor desde mi aplicación web?
- 23. ¿Cómo iniciar IE7 desde una aplicación de Windows Phone?
- 24. Abrir una URL usando el navegador nativo PlayBook desde una aplicación basada en Android
- 25. ¿Cómo abro mi paquete de configuraciones desde mi aplicación?
- 26. ¿Cómo abrir el navegador predeterminado de iPhone?
- 27. ¿Cómo puedo proteger mi aplicación web java?
- 28. en un controlador en asp.net-mvc ¿cómo puedo obtener información sobre el navegador de los usuarios?
- 29. ¿Cómo puedo implementar URL vanity en una aplicación de Rails?
- 30. ¿Iniciar una aplicación/intención de Android desde una etiqueta NFC?
gracias por la información adicional –
Esto es extremadamente agradable codificación – BoundForGlory
Esta respuesta podría utilizar una actualización para incluir Win8 y Win10. (Si alguien termina implementándolo, edite esta respuesta para incluirlo). – ANeves