Page 1 of 1

version de IE en oActivex:Do(Navigate)

PostPosted: Thu May 05, 2016 6:35 pm
by postinelli
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

Re: version de IE en oActivex:Do(Navigate)

PostPosted: Thu May 05, 2016 7:20 pm
by karinha
Teste asi:

Code: Select all  Expand view

#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
 



Re: version de IE en oActivex:Do(Navigate)

PostPosted: Thu May 05, 2016 7:21 pm
by karinha
oActiveX:Navigate( "www.google.com.br/maps/place/ " + ALLTRIM(mSearch) )

Re: version de IE en oActivex:Do(Navigate)

PostPosted: Fri May 06, 2016 12:01 pm
by postinelli
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

Re: version de IE en oActivex:Do(Navigate)

PostPosted: Fri May 06, 2016 6:19 pm
by Antonio Linares
Se instancia un objeto "Shell.Explorer", eso es todo

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

Re: version de IE en oActivex:Do(Navigate)

PostPosted: Mon Jun 06, 2016 7:32 pm
by sjingo
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

Re: version de IE en oActivex:Do(Navigate)

PostPosted: Tue Jun 07, 2016 6:34 am
by Antonio Linares
Marcelo,

gracias, muy interesante :-)