Codigo fuente HTML con Activex

Post Reply
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Codigo fuente HTML con Activex

Post by JmGarcia »

Estoy leyendo paginas HTML con Activex, ejemplo oActiveX:Do("Navigate2",alltrim(cURL)), y con un Timer voy refrescando el contenido de la visualizacion.

Me gustarian hacer 2 cosas con Activex:
Quedarme con un Print-Screen (JPG) del contenido de la ventana.
Quedarme con el codigo HTML (el texto ASCII) de la pagina llamada.
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

> Quedarme con un Print-Screen (JPG) del contenido de la ventana.

oWnd:HardCopy( [<nZoom>] )

ó

oActiveX:HardCopy( [<nZoom>] )

> Quedarme con el codigo HTML (el texto ASCII) de la pagina llamada.

Tendrás que buscar (en google) alguna propiedad del ActiveX que te de acceso al HTML mostrado
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Post by JmGarcia »

Supongo que tanto oWnd:HardCopy([<nZoom>]) como oActiveX:HardCopy([<nZoom>]) me devuelven un string con el contenido del JPG.
¿ Es asi ?
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

No, no es asi

Revisa el código fuente de Class TWindow Method HardCopy :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Post by JmGarcia »

JmGarcia wrote:Supongo que tanto oWnd:HardCopy([<nZoom>]) como oActiveX:HardCopy([<nZoom>]) me devuelven un string con el contenido del JPG.
¿ Es asi ?
Pues he comprobado que tanto uno como otro lo que me hacen el llamar a la impresora y sacarme un hardcopy por impresora.
Sigo como estaba :roll:
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Post by JmGarcia »

Antonio Linares wrote:Revisa el código fuente de Class TWindow Method HardCopy :-)

Code: Select all

METHOD HardCopy( nScale, lUser ) CLASS TWindow

   local oPrn

   DEFAULT lUser := .t.

   if lUser
      PRINT oPrn NAME ::cTitle FROM USER
   else
      PRINT oPrn NAME ::cTitle
   endif

      PAGE
         ::Refresh()
         SysRefresh()                      // Let Windows process
         ::Print( oPrn, 0, 0, nScale )
      ENDPAGE
   ENDPRINT

return nil

Code: Select all

METHOD Print( oTarget, nRow, nCol, nScale ) CLASS TWindow

   local lNew := .f.

   DEFAULT nRow := 0, nCol := 0, nScale := 4

   if ::bPrint != nil
      Eval( ::bPrint, Self )
      return nil
   endif

   if oTarget == nil
      lNew = .t.
      PRINTER oTarget NAME ::GetText()
         PAGE
         SysRefresh()
   endif

   WndPrint( ::hWnd, oTarget:hDC, nRow, nCol, nScale )

   if lNew
         ENDPAGE
      ENDPRINT
   endif

return nil
¿ Alguna pista ?
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Te refieres a que quieres guardar la imagen de la ventana ?

Entonces usa oWnd:SaveToBmp( cFileName )

Se crea un fichero en disco, que luego puedes "cargar" en memoria como una cadena usando MemoRead( cFileName )
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Re: Codigo fuente HTML con Activex

Post by JmGarcia »

JmGarcia wrote:Estoy leyendo paginas HTML con Activex, ejemplo oActiveX:Do("Navigate2",alltrim(cURL)), y con un Timer voy refrescando el contenido de la visualizacion.
Me gustarian hacer 2 cosas con Activex:
Quedarme con un Print-Screen (JPG) del contenido de la ventana.
Quedarme con el codigo HTML (el texto ASCII) de la pagina llamada.
Pues eso, que como cojo el texto HTML de una url llamada asi oActiveX:Do("Navigate2",alltrim(cURL))
Gracias.
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
User avatar
Biel EA6DD
Posts: 680
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca
Contact:

Post by Biel EA6DD »

Hola Jm, desde ActiveX no se como recuerar el código HTML, pero lo puedes conseguir usando la clase tWebClient puedes conseguir el código HMTL, en este post http://fivetechsoft.com/forums/viewtopi ... sc&start=0 hay un ejemplo aportado por James Bott.
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Post by JmGarcia »

Tengo un problema añadido... necesito que se mantenga el envio de COCKIES para poder validarme contra servidores que las usan.
Con el ActiveX lo consigo pero con la clase Turl no funciona lo de las cokies siembargo si funciona lo del codigo fuente HMTL.
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Post by JmGarcia »

He encontrado que con el Createobject("InternetExplorer.Application"), consultando el MSDN, tiene objetos Navigate2 y Document, asi pues podemos hacer esto:

Code: Select all

funcion main()
   local oIE,cTXT,cHTML
   oIE:=Createobject("InternetExplorer.Application")
   oIE:Navigate2("http://www.fivetechsoft.com")
   do While oIE:busy
   enddo
   cTXT:=oIE:Document:body:innerHTML() // Formato texto
   cHTML:=oIE:Document:body:innerText() // Formato HTML
   .../...
   oIE:Quit()
return nil
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
Post Reply