Crea tu propio navegador en 5 minutos

Iniciado por electro-ooz, 26 Septiembre 2005, 23:56 PM

0 Miembros y 1 Visitante están viendo este tema.

electro-ooz

En este post vamos a ver como podemos crear ¡nuestro propio navegador web!.

Aunque en un principio parece una tarea muy complicada, veremos que es realmente sencilla gracias a que usaremos los objetos que nos proporciona Microsoft.

Empezamos

Lo primero que debemos hacer, como casi siempre, es crear un proyecto Estándar  Exe, A continuación tienes que añadir el control que vamos usar. Para hacerlo existen tres formas:


  • CTRL+T
  • Con el menú: Project > Components
  • Pulsando con el botón derecho del ratón en la barra de herramientas y seleccionando la primera opción del menú emergente: Components... 

Una vez hayamos realizado esto, aparecerá una ventana de diálogo con tres etiquetas, pero la que nos interesa la que está seleccionada por defecto: Controls. En esta etiqueta, puedes ver una lista con todos los posibles controles que puedes usar en tu proyecto. Marca "Microsoft Internet Controls" y pulsa sobre el botón Aceptar.


Cuadro de diálogo para añadir nuevos controles

Aparecerá un nuevo control en la barra de herramientas como el que puedes ver en la imagen.


Nuevo icono en la
Barra de Herramientas

La interfaz de usuario
Aunque tener una interfaz amigable y llamativa es primordial en los programas de hoy en día, sólo voy  a crear algo extremadamente simple para concentrarnos en cómo debe funcionar. Por he incluido 2 botones para la navegación hacia atrás (cmdRetrocede) y hacia delante (cmdAvanza), una etiqueta (lblDireccion), una caja de texto (txtUrl), una línea  y el nuevo control, WebBrowser (MiWebBrowser), que es el nuevo control que había añadido al proyecto

El resultado final es este :


Distribución de los controles

Ya sé que es muy feo pero verás lo bien que funciona. Además, eres libre de hacerlo lo bonito que quieras por tu cuenta.

Programando nuestro navegador
Muchas veces no dispondremos de la ayuda para programar un control ActiveX, pero existe una forma de saber las constantes, propiedades, métodos y eventos de los que dispone un control. Para ello es útil el "Object Browser". Para abrirlo puedes:

Pulsar F2 o
Usando el menú: View > Object Browser
En la imagen lo puedes verlo después haber seleccionado la librería SHDocVwCtl (la que hemos incluido con Microsoft Internet Controls), y particularizado en la clase WebBrowser y la función Navigate que es la que usaremos en breve.


Object Browser

En el panel inferior del Object Browser puedes ver el nombre de la función junto con los parámetros que admite, anidando entre corchetes los opcionales.

Recuerda, el "Object Browser" es tu amigo, ¡úsalo!.

Primero vamos a ver cómo mostrar una página web después de introducirla en el recuadro de texto y pulsar ENTER ( o INTRO o RETURN o como quiera que llames a la tecla de retorno de carro)

Lo que vamos a hacer es comprobar cual es la tecla que se ha pulsado en el recuadro de texto y si tiene el valor ASCII de ENTER ( 13 ), indicarle al navegador que visite la dirección indicada.

NOTA: ASCII es el acrónimo de American Estándar Code for Information Interchange. Es un código que sirve para representar caracteres como números. A cada letra se le asigna un número único. Por ejemplo a la M se le ha asignado el número 77.

El código es el siguiente:

Private Sub txtURL_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then
        MiWebBrowser.Navigate txtURL.Text
    End If
End Sub


Esto ya lo podrías probar y verías como funciona, aunque tienes que estar conectado a la red, y si no tienes tarifa plana, mejor que lo dejes para cuando hayamos terminado de programar los dos botones que nos faltan y puedas probarlo todo de una vez.

Estos son todavía más fáciles de programar:

Private Sub cmdAvanza_Click()
    On Error Resume Next
    MiWebBrowser.GoForward
End Sub

Private Sub cmdRetrocede_Click()
    On Error Resume Next
    MiWebBrowser.GoBack
End Sub


Ya está todo, tienes tu propio navegador web y con sólo 7 líneas de código. ¿No es Visual Basic una maravilla?

Ampliaciones y Aplicaciones[/size
]¿Quieres mejorar tu navegador?

Por favor, ¡cambia la interfaz gráfica!
Creo que no he creado algo más antiestético en mi vida. Seguro que tu puedes darle un nuevo look.
Añade nuevas funciones.
Sólo hemos visto 3 funciones de las 17 que dispone el objeto WebBrowser y eso que no he tenido en cuenta los eventos y propiedades que son muchos más. Utiliza el Object Browser para investigar y después intenta usarlas de alguna manera.
Pero, ¿para qué sirve todo esto si ya tenemos Internet Explorer?

Existen multitud de usos que puedes conseguir usando este control. Algunas ideas que se me ocurren son:

Personaliza tu navegador
Muy útil para cibercafés y terminales de punto de venta.
Simplificar la interfaz de IE.
Podría ser útil para crear un navegador especial para niños.
Evitar que se visten páginas prohibidas
Puedes censurar aquellos webs que no tengan el contenido adecuado.
Esto son  sólo algunas ideas de lo que se puede hacer pero seguro que a ti se te ocurren muchas más. Para darte una idea del potencial que tiene usar este control, te comento que Microsoft ha usado el motor de Internet Explorer para crear aplicaciones como Microsoft Money 2000.  ¿Qué no puedes hacer tu?

fuente: http://www.ciberteca.net/visualbasic/articulos/tunavegador/default.asp

programatrix

Es una buena aportación, pero para los que quieran saber...
No es tu propio navegador
Es el navegador de internet explorer pero a tu gusto..., o sea que seguirá teniendo los fallos igual que el internet explorer y cuando abras alguna web que se tenga que abrir en otra ventana usará el internet explorer.
Saludos  ;)

{_The_Alwar_}

realmente yo creo que es el IE, porque cuando el panda me denego el acceso a la red del IE (yo no lo sabia y me volvi loco para saber que pasaba, de hay que use firefox) intente hacer uno con ese control y tampoco iba... weno que me parece bien, porque si quieres ponerle a tu aplicacion un navegador no viene mal.. o si quieres incluir banner.. creas un html y lo pones hay no? yo lo veo util

_Sergi_

Aun asi es una buena manera de personalizar el IE, de aprender sobre controles, propiedades y eventos.

Ademas cualquier aportacion siempre tiene que ser bien recibida no?? No digo que le hagan moderador de VB por decir como hacer un navegador pero .... tampoco decirle como primera respuesta que no sirve para nada.

Pero bueno para gustos, colores. A mi aunque no me sirve ya que eso lo se de sobra, me parece que le puede ser util a cualquiera.
Proyecto de Ingeniero

{_The_Alwar_}

claro q no le puedes decir q no, se q habra mucha gente q querra saber como se hace un navegador, xq qerra integrarlo en su aplicacion  (como yo hasta hace poco) y que no sabe como, ese objeto es una buena opcion, yo por lo menos le pondria o una chincheta o lo indexaria en otro tema de post interesantes no creeis?