FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour version de IE en oActivex:Do(Navigate)
Posts: 150
Joined: Tue Jul 15, 2008 07:12 PM
version de IE en oActivex:Do(Navigate)
Posted: Thu May 05, 2016 06:35 PM

Buenas Tardes

tengo el siguiente tema

desde el programa ingreso a distintas paginas con la siguiente funcion

////////////
Function VerURL(cLink)

Local oActiveX

If IsInternet()

DEFINE DIALOG oDlg RESOURCE "CONSULTA_WEB_3" TITLE "Ver URL"

REDEFINE ACTIVEX oActiveX ID 10 OF oDlg PROGID "Shell.Explorer"
REDEFINE BUTTON ID 110 OF oDlg ACTION oDlg:end()

ACTIVATE DIALOG oDlg CENTERED ON INIT oActiveX:Do( "Navigate2", cLink )

EndIf

Return NIL
/////////////////

ahora bien el tema es que algunos sitios donde navego chequea la version del navegador que se utiliza

si bien tengo instalado el IE11 ( tambien prob茅 con IE9, IE8, Chrome, Safari ) siempre me da el mismo UserAgent

User-Agent = Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)

imagino que el Activex que utiliza el FWH es MSIE 7.0, esto es asi? o de donde toma esta informacion?
es posible cambiar y/o actualizar esto?

desde ya gracias por su atencion

Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: version de IE en oActivex:Do(Navigate)
Posted: Thu May 05, 2016 07:20 PM
Teste asi:

Code (fw): Select all Collapse
#include "FiveWin.ch"

STATIC oWnd

FUNCTION Main()

   LOCAL oActivex, mSearch

   mSearch := "SAO PAULO - BRASIL"

   DEFINE WINDOW oWnd TITLE "FiveWin ActiveX Support - Via Google Maps"

   oActiveX = TActiveX():New( oWnd, "Shell.Explorer" )

   oActivex:Silent := .T.

   oActivex:SetFocus()

   oWnd:oClient = oActiveX // To fill the entire window surface

   oActiveX:Navigate( "www.google.com.br/maps/place/ " + ALLTRIM(mSearch)  )

   ACTIVATE WINDOW oWnd MAXIMIZED

RETURN NIL


Jo茫o Santos - S茫o Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: version de IE en oActivex:Do(Navigate)
Posted: Thu May 05, 2016 07:21 PM

oActiveX:Navigate( "www.google.com.br/maps/place/ " + ALLTRIM(mSearch) )

Jo茫o Santos - S茫o Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 150
Joined: Tue Jul 15, 2008 07:12 PM
Re: version de IE en oActivex:Do(Navigate)
Posted: Fri May 06, 2016 12:01 PM

funciona exacto a mi c贸digo

si veo el User-Agent siempre devuelve

User-Agent = Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)

cuando en realidad NO se esta usando el MSIE 7.0, sino el MSIE 11.0

probado en distintas PCs, con distintas versiones de Windows ( XP, W7, W10 )
con todos los Navegadores, siempre devuelve MSIE 7.0

yo imagino que es algo interno del FWH

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: version de IE en oActivex:Do(Navigate)
Posted: Fri May 06, 2016 06:19 PM

Se instancia un objeto "Shell.Explorer", eso es todo

Depende de la configuraci贸n que tenga en cada versi贸n de Windows supongo

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 229
Joined: Sat Mar 18, 2006 03:42 PM
Re: version de IE en oActivex:Do(Navigate)
Posted: Mon Jun 06, 2016 07:32 PM
Saludos

Perd贸n que "meta la cuchara".

Debido a que estoy haciendo algunos cambios en uso de un visor para los mapas, espec铆ficamente estoy cambiando a usar de googlemaps a openlayers, me encontr茅 con problemas relacionados a este tema. Sucede que mientras buscaba soluci贸n a mi problema de "error en el script de esta p谩gina" y no cargaba la librer铆a openlayers; me encontr茅 con este post que habla de los user-agent, y que dio el camino a la soluci贸n.

Buscando sobre esto en google, encontr茅 que efectivamente, cuando se llama a IE desde un activeX, por defecto se carga con IE 7, el cual no soporta muchas caracter铆sticas de HTML5 y CSS3. As铆 que la soluci贸n es registrar nuestra aplicaci贸n en el registro de Windows. En mi caso se solucion贸 ingresando en la siguiente clave:

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION

Aqu铆 se crea un nuevo -> valor de DWORD(32 bits), colocando el nombre de nuestra aplicaci贸n.exe
Luego le asignamos el valor decimal 11001
Esto hace que en el activeX else inicie por defecto el IE11, y all铆 si se cargo correctamente mi visor. y si se revisa el user-agent, ya hace referencia a que est谩 cargado IE11.

Este es el enlace que tiene toda la informaci贸n.
http://weblog.west-wind.com/posts/2011/May/21/Web-Browser-Control-Specifying-the-IE-Version#RenderingChallenged

Gracias
Marcelo Jingo
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: version de IE en oActivex:Do(Navigate)
Posted: Tue Jun 07, 2016 06:34 AM

Marcelo,

gracias, muy interesante :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion