Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Llamar al Web Browser desde un RTB (http://www.forosdelweb.com/f29/llamar-web-browser-desde-rtb-573383/)

gnzsoloyo 07/04/2008 10:31

Llamar al Web Browser desde un RTB
 
Hola.
Tengo un formulario en el que dentro de un RichTextBox hay un link a una página web. El link funciona perfectamente cuando uso este método:
Código:

    Private Sub RichTextBox1_LinkClicked(ByVal sender As Object, _
    ByVal e As System.Windows.Forms.LinkClickedEventArgs) _
    Handles RichTextBox1.LinkClicked
            p = System.Diagnostics.Process.Start("IExplore.exe", e.LinkText)
    End Sub

El problema es que no quiero llamar al Internet Explorer específicamente, sino al navegador por default que el usuario tenga instalado (estoy considerando, por ejemplo, que tengan el Mozilla Firefox, pero puede no ser el único).

¿Cómo ´debería hacer la llamada para que cargue la página sobre él.

Peterpay 07/04/2008 10:35

Re: Llamar al Web Browser desde un RTB
 
pues entonces deja q windows lo resuelva solo dile q inicie un proceso con el url el resolvera q navegaodr abrir

pero considera q tendiras q validar que el url es valido con un regex

gnzsoloyo 07/04/2008 11:37

Re: Llamar al Web Browser desde un RTB
 
La Urle está perfectamente validada, el problema es que si le mando el link, y dejo que Windows resuelva que hace, sí me abre el browser por default, pero me larga un mensaje que dice "Error en la apertura de una clave", por lo que parece que intenta leer una clave del registro.
Intenté capturar el error con un Try..Catch, pero no resultó.

Peterpay 07/04/2008 12:02

Re: Llamar al Web Browser desde un RTB
 
como q una clave??

Peterpay 07/04/2008 12:03

Re: Llamar al Web Browser desde un RTB
 
entonces ese es problema del windows en el q estas probando, prueba en otra maquina y revisalo

gnzsoloyo 07/04/2008 12:04

Re: Llamar al Web Browser desde un RTB
 
Se refiere a la apertura de una clave del Registry.
Mismo problema, en tres máquinas distintas.

La pregunta sería entonces: ¿Cómo hago para averiguar cual es el nombre del browser por default en una PC desde un Windows Form, suponiendo que no es el IExplore.exe?

Peterpay 07/04/2008 12:30

Re: Llamar al Web Browser desde un RTB
 
System.Diagnostics.Process.Start("http://yourwebapp/yourfile.aspx")
asi ponloo q lo resuelva el sistema operativo

gnzsoloyo 07/04/2008 13:01

Re: Llamar al Web Browser desde un RTB
 
Es exactamente esa sintaxis la que me causa el problema:
Código:

p = System.Diagnostics.Process.Start(e.LinkText)
e.LinkText contiene en este punto, por ejemplo: "http://dev.mysql.com/downloads/"

Y el resultado es:
1. Abre la ventana del browser y muestra la página pedida.
2. Muestra un mensaje de error diciendo "Error en la apertura de una clave".

Insisto:
¿Cómo hago para averiguar cual es el nombre del browser por default en una PC desde un Windows Form, suponiendo que no es el IExplore.exe?

Detalle a tener en cuenta:
No estoy programando una aplicación web (ASP) sino una aplicación de escritorio que tiene acceso a internet (VB en VS2003).

Peterpay 07/04/2008 13:23

Re: Llamar al Web Browser desde un RTB
 
private string getDefaultBrowser()
{
string browser = string.Empty;
RegistryKey key = null;
try
{
key = Registry.ClassesRoot.OpenSubKey(@"HTTP\shell\open
\command", false);

//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);
}
}
finally
{
if (key != null) key.Close();
}
return browser;
}


retorna el browser por default del windows register

gnzsoloyo 07/04/2008 13:28

Re: Llamar al Web Browser desde un RTB
 
¡Exacto! Esa era la solución que estaba buscando...
Muchas gracias.


La zona horaria es GMT -6. Ahora son las 07:53.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.