version de IE en oActivex:Do(Navigate)

Post Reply
postinelli
Posts: 128
Joined: Tue Jul 15, 2008 7:12 pm
Location: Argentina

version de IE en oActivex:Do(Navigate)

Post 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
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

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

Post by karinha »

Teste asi:

Code: Select all

#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
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

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

Post by karinha »

oActiveX:Navigate( "www.google.com.br/maps/place/ " + ALLTRIM(mSearch) )
João Santos - São Paulo - Brasil
postinelli
Posts: 128
Joined: Tue Jul 15, 2008 7:12 pm
Location: Argentina

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

Post 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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

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

Post 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
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
sjingo
Posts: 229
Joined: Sat Mar 18, 2006 3:42 pm
Location: Ibarra-Ecuador

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

Post by sjingo »

Saludos

Perdón que "meta la cuchara".

Debido a que estoy haciendo _ 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/ ... Challenged

Gracias
Marcelo Jingo
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

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

Post by Antonio Linares »

Marcelo,

gracias, muy interesante :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply