Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Como obtener el navegador predeterminado (https://www.clubdelphi.com/foros/showthread.php?t=25210)

El_Chava 15-09-2005 17:28:43

Como obtener el navegador predeterminado
 
Hola amigos programadores espero que esten bien. bueno mi problema es el siguiente actualmente estoy desarrollando una aplicacion en la cual se me ocurrio agregarle una funcion para determinar si se encuentra conectado a internet el cual ya pude hacerlo, pero el problema que me vino es que en la maquina donde pruebo el sistema tiene 2 navegadores tanto mozilla como internet explorer, y lo que quiero saber es como puedo saber cual de los 2 es el predeterminado y como ejecutarlo para que al momento de que el usuario desee navegar por internet se ejecute el navegador, espero que me puedan ayudar. de antemano gracias

dec 15-09-2005 17:50:28

Hola,

No estoy cien por cien seguro, pero, creo que, si haces uso de la función "ShellExecute", por ejemplo, para abrir un archivo o una página Web (URL) sin indicar con qué programa, el sistema se encargará de buscar el programa "por defecto" para la tarea que quiere llevarse a cabo. Por ejemplo, si tienes como navegador predeterminado el programa FireFox y haces uso de "ShellExecute" para abrir una determinada URL, esta se abrirá en dicho navegador de Internet.

El_Chava 15-09-2005 20:41:34

Hola dec muchas gracias por tu respuesta, pero si no es mucho pedir me podrias mandar algun ejemplo?

dec 15-09-2005 21:40:50

Hola,

Como he dicho más arriba, tengo como "navegador predeterminado" el Mozilla FireFox. Pues bien, con lo siguiente, al pretender abrir mediante la función "ShellExecute" (en la unidad "ShellApi") una determinada URL conocida de todos, la misma se abrirá con el "navegador predeterminado", esto es, como digo, la URL se abrirá en FireFox. Si FireFox ya está abierto la URL se cargará en la pestaña "activa" del nagegador.

Código Delphi [-]
 procedure TForm1.Button1Click(Sender: TObject);
 resourcestring
   sUrl = 'http://www.clubdelphi.com';
 begin
   ShellExecute(GetDesktopWindow, PChar('open'),
     PChar(sUrl), nil, nil, SW_NORMAL);
 end;
Sin embargo, aunque tenga como "navegador predeterminado" el mencionado FireFox, todavía con la función "ShellExecute" se puede "forzar" a que abra la URL del ClubDelphi en el navegador Internet Explorer. Fíjate en la ayuda de la función "ShellExecute"; la encontrarás en la ayuda del SDK de Win32, el cual encontrarás en el propio menú de ayuda de Delphi.

Pues bien, iba a decir que anteriormente pasábamos como el parámetro "programa a ejecutar" una URL, sin más, y así conseguíamos lo que se pretendía en un principio, o casi: que fuera Windows el encargado de decidir con qué programa prefiere el usuario abrir las URL, en este caso, pero esto valdría para cualquier otro tipo de "archivo": si pretendes abrir y mostrar con "ShellExecute" un archivo "de texto plano" (*.txt), generalmente, será el Bloc de Notas el encargado de hacerlo.

A lo que íbamos. A forzar a que una URL se abra en Internet Explorer. Aquí está el código:

Código Delphi [-]
 procedure TForm1.Button2Click(Sender: TObject);
 resourcestring
   sUrl = 'http://www.clubdelphi.com';
 begin
   ShellExecute(GetDesktopWindow, PChar('open'),
     PChar('iexplore.exe'), PChar(sUrl), nil, SW_NORMAL);
 end;
¿Qué cambia respecto del anterior? Vuelvo a remitirte a la ayuda de la función "ShellExecute". Cambia que ahora estamos pasándole como parámetro el ejecutable de un programa (con Internet Explorer y FireFox funciona bien Windows XP y Delphi 7 comprobado) -podría ser también la ruta completa del programa: de lo contrario Windows tendrá que averiguar dónde está en realidad el programa a que quiere llamarse, aunque ya digo que no parece tener Windows problemas en localizar a Internet Explorer y FireFox, por poner dos casos- ...

Decía que dos son los parámetros que nos interesan: el ejecutable a ejecutar y ¿qué más? El archivo, en este caso, una URL, que queremos que ejecute como deba el programa a que llamamos. En este caso se manda ejecutar el programa Internet Explorer y se le pasa como parámetro una dirección URL, la cual será abierta por el navegador, insisto -y acabo ya- en este caso, aunque yo tenga configurado como "navegador predeterminado" a Mozilla FireFox ;)

El_Chava 19-09-2005 19:14:26

Gracias dec lo puse en practica y funciona bastante bien. Estaremos en contacto


La franja horaria es GMT +2. Ahora son las 01:47:13.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi