| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Lio Invitado
|
Publicado: Lun 25 Nov, 2002 4:02 pm Asunto: CreateOleObject("???"); |
|
|
Quiero acceder al documento que esta cargado en el navegador, para lo que hago lo siguiente:
Variant IE;
IE = CreateOleObject("InternetExplorer.Application");
Ahora quiero acceder al modelo de objetos. En Delphi funciona directamente así: p. ej. IE.document.links.length (propiedad que nos da el número de enlaces del documento).
Supongo que tengo que utilizar OlePropertyGet(), OlePropertySet(), OleProcedure(), OleFunction(), Exec(), pero no se que parámetros debo pasarles ni donde consultarlo.
Tb me gustaría saber si en lugar de "InternetExplorer.Application" puedo pasar otra cadena que me devuelva como objeto el navegador por defecto para que funcione en equipos q no usen IExplorer.
Gracias.  |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Lun 25 Nov, 2002 10:21 pm Asunto: |
|
|
Te pongo un ejemplo de lo que entiendo quieres hacer. Añadimos un botón y dentro del OnClick del mismo lo siguiente:
| Código: | // Añadimos: #include<ComObj.hpp> para BCB3,4,5,6
// o: #include<OleAuto.hpp> para BCB1
Variant ie = CreateOleObject("InternetExplorer.Application");
// Hacemos visible el navegador y cargamos una página
ie.OlePropertySet("Visible", true);
ie.OleProcedure("Navigate", "http://www.terra.es");
// Esperamos hasta que se haya cargado la página completa
// (el casting no es necesario en algunas versiones de BCB)
while ( static_cast<bool>(ie.OlePropertyGet("Busy")) )
Application->ProcessMessages();
// Ponemos en primer plano nuestra aplicación
Application->BringToFront();
// Mostramos el número de enlaces en la página
ShowMessage(
ie.OlePropertyGet("Document")
.OlePropertyGet("links")
.OlePropertyGet("length") ); |
Y con respecto a la segunda pregunta, esto es propio del IExplorer, para otros navegadores tendrás que consultar su documentación. Por ejemplo recuerdo que el Netscape se podía manejar usando DDE, pero no te puedo dar mas detalles, no creo que te cueste mucho encontrar algo en algún buscador sobre esto. |
|
| Volver arriba |
|
 |
Lio Invitado
|
Publicado: Mie 27 Nov, 2002 2:59 pm Asunto: |
|
|
Muchas Gracias.
Respecto a la segunda pregunta, ¿Cómo puedo saber cual es el navegador predeterminado del equipo?, es para saber que objeto ole tengo que crear, dependiendo del equipo en que se ejecute la aplicación.
Gracias de nuevo. |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Mie 27 Nov, 2002 3:22 pm Asunto: |
|
|
Con lo siguiente puedes leer del registro cual es el ejecutable del navegador por defecto que te servirá para identificar cual es:
// Añadimos: #include<registry.hpp>
TRegistry *reg = new TRegistry;
reg->RootKey = HKEY_CLASSES_ROOT;
if ( reg->OpenKey("http\\shell\\open\\command", false) )
ShowMessage( reg->ReadString("") );
delete reg; |
|
| Volver arriba |
|
 |
Invitado
|
Publicado: Mie 27 Nov, 2002 8:50 pm Asunto: |
|
|
Ya se que soy un "pesao" pero, ¿Sabrías decirme donde encontrar informacion sobre estas propiedades y métodos (document, Visible, Busy, etc.)?
Gracias de nuevo (otra vez).  |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
|
| Volver arriba |
|
 |
Lio Invitado
|
Publicado: Mie 27 Nov, 2002 10:03 pm Asunto: |
|
|
Eternamente agradecido  |
|
| Volver arriba |
|
 |
|