| Artículos | 01 FEB 1998

¿Cómo incluir un navegador en sus programas?

Tags: Histórico
Jaime Peña.

Si usted dispone de Microsoft Internet Explorer 3.x o 4.x, tendrá instalado también el control ActiveX denominado WebBrowser. Se trata del núcleo central del navegador Explorer, que puede utilizarlo para incluir en su propias aplicaciones un excelente sistema de acceso a Internet o a Intranets locales. Ya sea Visual Basic, un compilador de C/C++, Delphi o cualquier otro entorno de desarrollo que acepte controles ActiveX, estará a su alcance toda la potencia de Microsoft Internet Explorer, personalizando el cómo y cuándo hacer visibles páginas HTML, imágenes en formatos conocidos por él (como GIF o JPEG) e, incluso, documentos que sean gestionables mediante servidores OLE 2, como Microsoft Word o Excel 97.

En este artículo nos basaremos en Visual Basic 5 y programaremos un navegador con algunas opciones de las más comunes. Puede que le interese como tal, pero posiblemente le servirá como base para potenciar aplicaciones más extensas que, entre otras funcionalidades, sean capaces de manejar documentos de la Web. En una tabla adjunta se recogen los diferentes métodos, propiedades y funciones de respuesta a eventos que estarán a su disposición. Observe que con ellas casi todo es posible.

Instalar e incluir el componente WebBrowser

El control ActiveX que da soporte a WebBrowser se instala con Microsoft Internet Explorer 3 o superior. Se almacena en el directorio SYSTEM de nuestra instalación de Windows como un archivo con el nombre SHDOCVW.DLL -note que se trata, en realidad, de un documento activo en formato de librería de enlace dinámico-.

Para disponer de él en nuestros diseños, si empleamos Microsoft Visual Basic hemos de incluirlo en la paleta de componentes, ya que no es uno de los mostrados por defecto. Por tanto, desde el entorno de Visual Basic, seleccione la opción de menú Proyecto\Componentes; en la caja de diálogo Componentes, revise la lista de Controles y seleccione la casilla de verificación de Microsoft Internet Controls. Al cerrarla, verá ya en la paleta de componentes el icono correspondiente -una carpeta amarilla con una lupa en su interior-, que se denomina WebBrowser.

Para incluirlo en un formulario, opere como es habitual: haga clic sobre él en la paleta de componentes y después arrastre el cursor del ratón para marcar el área que inicialmente ocupará en control WebBrowser. Igual que haría, por ejemplo, con un botón de comando o una caja de edición. Inicialmente no observará nada particular, ya que no tiene una propiedad Text o Caption que denote con una etiqueta de textos de qué se trata. Puede que durante el diseño observe algunos comportamientos extraños con lo que hay en el interior del control WebBrowser, ya que con frecuencia muestra, como si fuera transparente, el contenido de la ventana que se encuentra debajo; por ejemplo, la de edición de código. No se preocupe, ya que sólo se trata de una apariencia en el diseño que nada tiene que ver con el contenido real que mostrará durante la ejecución de la aplicación.

Si desea que el control ocupe toda el área cliente de la ventana del formulario, ha de codificar manualmente el redimensionamiento del control al modificar el tamaño del formulario. Por ejemplo, podría valer algo así como:

wb.Top = 0

wb.Left = 0

wb.Width = form1.ScaleWidth

wb.Height = form1.ScaleHeight

e incluir este código como respuesta a la función de respuesta al evento de redimensionado -Form_Resize()- del formulario. Observe que si hay otros componentes en la ventana, como paneles con botones o barras de estado, ha de modificar en concordancia las dimensiones. Eso es algo que recogemos en el listado de nuestro ejemplo -véase el listado adjunto-.

Navegación y funciones básicas

Desde el control WebBrowser podremos controlar algunas operaciones de navegación elementales. En concreto, se implementan fácilmente comandos de ir a la dirección URL (Uniform Resource Locator) anterior y siguiente; lo que en Microsoft Internet Explorer se corresponde con los botones de la barra de herramientas Adelante y Atrás.

De entre las funciones de navegación disponibles, la más importante se refiere a ir a una dirección URL concreta (o un documento local o en una red Intranet). Para ello, se utilizará el método Navigate, que tiene la sintaxis:

wb.Navigate(dirección URL)

en donde wb es la referencia al control WebBrowser de nuestra aplicación; por ejemplo, podríamos escribir algo así cómo:

wb.Navigate("http://www.microsoft.com")

que nos llevaría al foro de Internet de Microsoft Corp. Si repasa el listado encontrará que este método lo empleamos para cargar documentos locales y para ir a direcciones predefinidas o ya visitadas, que se contienen en una caja ComboBox (véase más abajo). También se puede referir a un documento local, por ejemplo:

wb.Navigate("e:\carpeta\documento.html")

El método Navigate puede llamarse con varios parámetros adicionales, de ellos, el segundo puede ser de bastante interés. Se trata de una constante que indica cómo se tratará la carga del recurso (documento o imagen). Los posibles valores son 1 (abre el recurso en una nueva ventana de navegación), 2 (No añadirá el recurso a la lista del Historial del navegador), 4 (No cargará el recurso del caché del navegador) y 8 (No escribirá el recurso en el caché del navegador).

Por ejemplo, el código alternativo:

wb.Navigate("http://www.microsoft.com", 4)

cargará el documento directamente del foro www.microsoft.com, sin comprobar si está ya en el caché en el disco duro.

Los métodos GoBack, GoForward, GoHome y GoSearch, nos llevarán, respectivamente, a las direcciones URL -o documentos locales- visitados anterior y posteriormente al actualmente mostrado, ir a la página de inicio e ir a la página de búsquedas. Estas dos últimas son las especificadas en nuestra instalación de Microsoft Internet Explorer. Hemos de tener precaución y capturar el posible error, en el caso de utilizar GoBack y GoForward, dado que pueden estar indefinidas si es que sólo hemos iniciado nuestra sesión de trabajo. Observe en el listado adjunto la declaración de las subrutinas Command2_Click() y Command3_Click(), se refieren a hacer clic sobre los botones de navegación de nuestro ejemplo (véase más adelante); en ellas simplemente se sale de la subrutina si no hay direcciones anterior y siguiente, respectivamente, puede que a usted le interese definir un mensaje de aviso.

El método Refresh nos permite recargar -refrescar o Actualizar, como se denomina en las opciones de Microsoft Internet Explorer- el documento o imagen actualmente mostrada. Su sintaxis es muy simple:

wb.Refresh

Este método recargaría (actualizaría) el recurso actualmente mostrado en el control identificado por wb. Alternativamente y para mayor control, puede también usar el método Refresh2. Su sintaxis es:

wb.Refresh2[valor]

en donde valor puede ser 0, 1 ó 3 para, respectivamente, realizar una actualización estándar, actualizar si la página ha expirado o actualizar pasando por alto el contenido del caché de Microsoft Internet Explorer. Esto último es de suma utilidad caso de estar realizando desarrollos en los que cambie el contenido del documento. Recuerde que sería equivalente a hacer clic sobre el botón Actualizar de Microsoft Internet Explorer, manteniendo pulsada la tecla Mayúsculas.

Para refrescar -Actualizar, según la nomenclatura de Microsoft Internet Explorer- un documento, también puede hacer clic sobre el control WebBrowser y posteriormente pulsar la tecla F5, como si estuviera trabajando con el propio Internet Explorer. De la misma manera, pero pulsando la combinación de teclas CTRL+P, se desplegará la caja de diálogo de imprimir el documento act

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información