PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → ActiveX WebBrowser version supérieur à IE7
ActiveX WebBrowser version supérieur à IE7
Débuté par René Bisson, 30 jan. 2014 15:51 - 20 réponses
Posté le 30 janvier 2014 - 15:51
Bonjour,

Dans une fenêtre WinDev, est-ce qu'il est possible d'incorporer un navigateur internet dont la version est supérieur à IE7.

j'ai essayé le Control ActiveX "Microsoft WebBrowser", le champ HTML, un champ XAML (.NET 3.0) et la classe CiExplore.
Et toutes c'est donne IE7.

le problème que j'ai, c'est que un des sites que j'encapsule dans ma fenêtre WinDev ne support plus IE7.

Sinon est-ce possible de simuler un navigateur autre IE, comme par exemple Chrome ou firefox ?

Merci,
>René Bisson
Membre enregistré
23 messages
Popularité : +2 (2 votes)
Posté le 30 janvier 2014 - 17:31
Re-bonjour,

En cherchant sur internet j'ai trouvé sur un forum une solution potentiel, il me reste à la tester chez mon client en problème. mais je suis confiant.

La solution consiste à ajouter une clé de registre pour dire que pour un EXE donné, je veux que le WebBrowser ActiveX emule une version en particulier.

Il semblerait que pour des raisons de sécurité, la version émulé à défaut est IE7.

Voir les liens suivants : pour plus de détail :
http://stackoverflow.com/questions/4612255/regarding-ie9-webbrowser-control
http://msdn.microsoft.com/en-us/library/ee330730(v=vs.85).aspx

Voilà, en espérant avoir aidé d'autre dev

>René B.
Membre enregistré
841 messages
Popularité : +19 (27 votes)
Posté le 21 mai 2014 - 18:33
Bonjour René,

J'avais déjà lu ce topique mais qu'en est il sur l'exe distribué. Il faudrait modifier la clef de registre du client.
J'ai toujours eu ce problème... et je n'en vois pas la solution.

Bonne soirée

--
>Miro
Membre enregistré
962 messages
Popularité : +183 (185 votes)
Posté le 22 mai 2014 - 02:36
hello,
pour y voir plus clair avec cette histoire de version d'internet explorer utilisé dans les champs HTML et saisie HTML de windev, j' ai fait l'expérience
suivante :
Je crée un projet avec un champ HTML et un champ de saisie HTML et un bouton.
dans le code HTML du champ HTML je mets :
<HTML>
<HEAD>
<TITLE>Navigateur</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<CENTER>
<SCRIPT LANGUAGE="JavaScript">
<!--
document.write("Navigateur : "+navigator.appName+"<br>");
document.write("Version : "+navigator.appVersion+"<br>");
document.write("Mode : "+document.documentMode+"<br>");
</SCRIPT>
</BODY>
</HTML>

et je coche Autoriser l'exécution des scripts.

Dans le code du bouton je mets :
Trace(Texte_HTML)// Texte_HTML champ saisie HTML


si je ne mets rien dans la base de registre voici ce que j'obtiens en exécution par wdtst :
1 - Pour le champ HTML :
Navigateur:Microsoft Internet Explorer
Version:4.0(compatible;MSIE7.0;Windows NT6.1;WOW64;Trident/7.0;
Mode:5

2 - Dans la fenêtre Trace en appuyant sur le bouton
<\r><\n><BODY bgColor=#ffffff></BODY>


comme on peut le constater on est en IE7 ( MSIE 7.0 ne pas se fier à Version)
il n'y a pas de guillemets pour l'attribut bgColor

Maintenant je mets ceci dans la base de registre pour passer en mode IE11 :
64bits ou32bits machine:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION

Valeur de clé DWord32bits:wdtst.exe donnée(en hexa) :2edf

32bits sur machine64bits:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION

Valeur de clé DWord32bits:wdtst.exe donnée(en hexa) :2edf


Quand je lance le programme (par le débogueur wdtst) voici ce que j'obtiens :
1 - Pour le champ HTML :
Navigateur:Netscape
Version:5.0(Windows NT6.1;WOW64;Trident/7.0;rv:11.0)like Gecko
Mode:11


2 - Dans la fenêtre Trace en appuyant sur le bouton
<body text="#000000"bgcolor="#ffffff"></body>


On est bien en mode IE11 (rv:11.0 ne pas se soucier des autres valeurs plutôt déroutantes)
On a retrouvé les guillemets pour les attributs.

Si on compile le projet et que l'on lance le projet par son exécutable on repasse en IE7. Normal on a pas mis de clé de registre pour l'exécutable.

J'espère que cela vous rendra plus clair le problème posé.

>Ami calmant, J.P
Membre enregistré
23 messages
Popularité : +2 (2 votes)
Posté le 22 mai 2014 - 13:52
Bonjour,

Je n'avais pas fait de suivi, mais pour ma part, le fait d'ajouter la clé de registre pour mon EXE à résolu mon problème.
Comme J.P l'a dit, il faut une clé de registre pour chaque EXE qui utilise l'activeX ou un champ HTML.

Pour tes EXE distribués, tu as juste à ajouter du code dans l'ouverture de ton projet qui va vérifier et ajouter la clé dans les registres windows en utilisant les fonctions de gestion des registre de WinDev. Mais attention, ton EXE va peut-être avoir besoins du manifeste Administrator afin d'écrire dans le registre. Sinon, je crois qu'il l'écrit dans un registre temporaire et qu'il faut l'ajouter à chaque démarage du EXE....

Bon Dev.

>René B.
Membre enregistré
841 messages
Popularité : +19 (27 votes)
Posté le 22 mai 2014 - 15:13
Merci,

C'est bien ce que je craignais et avoir les message Windows xxx veut modifier la config etc... etc...

Ce n'est pas trop pratique pour distribuer.

Bon courage.

--
>Miro
Posté le 22 mai 2014 - 15:30
Bonjour

une petite recherche montre qu'il y a un certain nombre de solutions en
..net:

http://www.awesomium.com/
https://github.com/cefsharp/CefSharp
https://bitbucket.org/geckofx
http://sourceforge.net/projects/webkitdotnet/
...

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

NOUVEAU: WXShowroom.com est disponible : Montrez vos projets !
Plus d'information surhttp://fabriceharari.com


On 5/22/2014 7:13 AM, Camus HADDAD ( depem wrote:
Merci,

C'est bien ce que je craignais et avoir les message Windows xxx veut
modifier la config etc... etc...

Ce n'est pas trop pratique pour distribuer.

Bon courage.

--
>Miro
Membre enregistré
841 messages
Popularité : +19 (27 votes)
Posté le 22 mai 2014 - 18:08
Merci Fabrice,

J'ai déjà tenté d'utiliser WebKit. L’intégration n'est pas trop compliquée mais le résultat très décevant. J'ai constaté à posteriori que la plus jeune dll date de 2010 ce qui explique tout. Je pense que le projet est abandonné.
Awesomium lui coûte 2600 $ par Application distribuée, il y a intérêt à bien vendre l'appli ou en vendre beaucoup...:-)

Ceci pour t’éviter de perdre du temps sur ces 2 la en cas de besoin.

Je vais tester les autres des que j'ai un peu de temps... IE7 c’était pas la crème des browser, mais j'ai appris à contourner les problèmes.

Merci encore

--
>Miro
Membre enregistré
962 messages
Popularité : +183 (185 votes)
Posté le 23 mai 2014 - 02:01
hello,
GeckoFx et CefSharp c'est faisable mais cela oblige à rajouter de gros fichiers et il faut vérifier que la licence d'utilisation soit appropriée à l'usage.
Pour GeckoFx il faut xulrunner
Pour CefSharp il faut la libcef
Pas sûr non plus que cela soit stable avec tous les types de pages web.

voilà ce que cela donne :











>Ami calmant, J.P
Membre enregistré
841 messages
Popularité : +19 (27 votes)
Posté le 23 mai 2014 - 06:21
@Jurassic Pork

Merci pour le renseignement.

Bonne journée

--
>Miro
Posté le 07 juin 2014 - 10:28
Bonjour.

Confronté au même problème récemment je vous propose la solution suivante afin d'utiliser soit une version spécifique du moteur de rendu d'IE soit la version la plus récente possible:http://unblogdetrop.com/blog/billet/792-windev-champ-html-version-ie.html>
Posté le 25 septembre 2014 - 19:48
Ami Jurassic et calmant a la fois.....

pourrrai-je disposer des sources de tests que tu as uilisee pour gecko et cfsharp.

j'essaie de creer un propre browser qui peut supporter une page web avec des applets java.

Merci d'avance.

>Andy
Posté le 28 octobre 2014 - 02:23
ben un grand merci pour l'info!! marche impecc!!
Membre enregistré
23 messages
Popularité : +2 (2 votes)
Posté le 10 novembre 2014 - 17:20
Bonjour, voici le code de ma procédure globale qui est appelé dans le code d'ouverture de mon projet.
ProcedurePRJSetRegistKeyForIE()

//Liste des valeurs pour la clé selon la version de IE
nValueIE7 isint=7000//Internet Explorer 7 (Valeur en Hexa: "0x1B58")
nValueIE8 isint=8000//Internet Explorer 8 (standards-based !DOCTYPE) (Valeur en Hexa: "0x1F40")
nValueIE8_1 isint=8888//Internet Explorer 8 (regardless of the !DOCTYPE) (Valeur en Hexa: "0x22B8")
nValueIE9 isint=9000//Internet Explorer 9 (standards-based !DOCTYPE) (Valeur en Hexa: "0x2328")
nValueIE9_1 isint=9999//Internet Explorer 9 (regardless of the !DOCTYPE) (Valeur en Hexa: "0x270F")
nValueIE10 isint=10000//Internet Explorer 10 (standards-based !DOCTYPE) (Valeur en Hexa: "0x2710")
nValueIE10_1 isint=10001//Internet Explorer 10 (regardless of the !DOCTYPE) (Valeur en Hexa: "0x2711")
nValueIE11 isint=11000//Internet Explorer 11 (standards-based !DOCTYPE) (Valeur en Hexa: "0x2AF8")
nValueIE11_1 isint=11001//Internet Explorer 11 (regardless of the !DOCTYPE) (Valeur en Hexa: "0x2AF9")
nValueMostRecent isint=0//Pour toujours utiliser la version la plus récente de IE (Valeur en Hexa: "0x0000")
/////////////////////////////////
//pour plus d'info sur comment utilise les codes de version pour le lien suivant
//http://msdn.microsoft.com/en-us/library/ee330730%28v=vs.85%29.aspx#browser_emulation
/////////////////////////////////


//Pour tous les utilisateurs de la machine, mais nécessite les droits d'admin pour écrire dans cette clé
sKEY_LOCALMACHINE_64BITS isstring="HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node"
sKEY_LOCALMACHINE_IE_EMULE6432 isstring="HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION"
sKEY_LOCALMACHINE_IE_EMULE isstring="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION"

//Pour l'utilisateur en cours, mais ne nécessite pas les droits d'admin pour écrire dans cette clé
sKEY_CURRENTUSER_64BITS isstring="HKEY_CURRENT_USER\SOFTWARE\Wow6432Node"
sKEY_CURRENTUSER_IE_EMULE6432 isstring="HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION"
sKEY_CURRENTUSER_IE_EMULE isstring="HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION"

sExeName isstring=fExtractPath(ExeInfo(exeName),fFileName+fExtension)

//Ecrire dans la clé principal
IFNOTRegistryExist(sKEY_CURRENTUSER_IE_EMULE)THEN
RegistryCreateKey(sKEY_CURRENTUSER_IE_EMULE)
END
RegistrySetValue(sKEY_CURRENTUSER_IE_EMULE,sExeName,nValueMostRecent,RegistryTypeInt)

//Voir si la machine est en 64 Bits, si oui créé la clé pour les applications 32 bits qui roule sur 64 Bits.
IFRegistreExiste(sKEY_LOCALMACHINE_64BITS)THEN
IFNOTRegistryExist(sKEY_CURRENTUSER_IE_EMULE6432)THEN
RegistryCreateKey(sKEY_CURRENTUSER_IE_EMULE6432)
END
RegistrySetValue(sKEY_CURRENTUSER_IE_EMULE6432,sExeName,nValueMostRecent,RegistryTypeInt)
END


Bon Dev.

>René B.
Posté le 02 mars 2015 - 21:46
La réponse ici : http://www.developpez.net/forums/d1445453/environnements-developpement/windev/net-xaml-chromium-application-windev/…

J'ai laissé une archive avec un projet Windev basique embarquant chrome. Vous n'avez plus qu'à vous l'approprier.

Merci à Gaautman et jurassic pork pour leur travail et leurs recherches.

>Alexandre.
Membre enregistré
41 messages
Popularité : +2 (2 votes)
Posté le 11 août 2015 - 23:31
Salut à tous.
J'ai aussi fait une petite fonction qui fait le travail. Il suffit de l'appeler dans le code d'initialisation du projet.
Merci à la contribution de Jurassic Pork qui m'a beaucoup aidé à comprendre le fonctionnement du bazar.

EVersion_ie est une Enumération
IE7
IE8
IE8_Forcé
IE9
IE9_Forcé
IE10
IE10_Forcé
IE11
IE11_Forcé
FIN

Force_ie11_Emulation(EVersion_ie.IE11_Forcé)


ProcedureForce_ie11_Emulation(EVersion_ie)
sValeurClé est unechaîne
SELONEVersion_ie
CASIE7
sValeurClé="7000"
CASIE8
sValeurClé="8000"
CASIE8_Forcé
sValeurClé="8888"
CASIE9
sValeurClé="9000"
CASIE9_Forcé
sValeurClé="9999"
CASIE10
sValeurClé="10000"
CASIE10_Forcé
sValeurClé="10001"
CASIE11
sValeurClé="11000"
CASIE11_Forcé
sValeurClé="11001"
FIN

// Sélection de la clé registre ne fonction de l'executable (32 ou 64bits)
sEplacementRegistre est unechaîne="HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION"
//SI VersionWindows() = 64 ALORS
//SI pas EnMode64bits() ALORS
//// Application 32Bits
//sEplacementRegistre = "HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION"
//FIN
//FIN
// Chez moi ça fonctionne sans ça

// Inscription dans le registre
SI PASEnModeTest()ALORS
RegistreEcrit(sEplacementRegistre,ProjetInfo(piNomEXE)+".exe",sValeurClé,RegistreTypeEntier)
SINON
RegistreEcrit(sEplacementRegistre,"wdtst.exe",sValeurClé,RegistreTypeEntier)
FIN

RETOUR
>
Posté le 06 décembre 2017 - 07:39
bonjour

je suis novice en programmation avec windev j ai vu ton code j aimerais l adapter a ma situation, je veux forcer IE a utiliser la version 9 . En regardant ton code je pense que cela peut m aider mais j aimerais savoir ou as tu place le premier code:

EVersion_ie est une Enumération
IE7
IE8
IE8_Forcé
IE9
IE9_Forcé
IE10
IE10_Forcé
IE11
IE11_Forcé
FIN

Force_ie11_Emulation(EVersion_ie.IE11_Forcé)

>merci
Membre enregistré
41 messages
Popularité : +2 (2 votes)
Posté le 06 décembre 2017 - 17:14
Hello john,
Tu as juste à remplacer

Force_ie11_Emulation(EVersion_ie.IE11_Forcé)


par

Force_ie11_Emulation(EVersion_ie.IE9_Forcé)


Dans le code d'initialisation du projet.

>Bon courage, en générale quand on parle ie c'est que le projet n'est hyper cool.
Posté le 01 juillet 2021 - 21:27
Bonjour jurassic pork !
j'aimerais bien s'avoir comment tu a pu intégrer GeckoFx dans windev est ce possible de publier les sources windev
>Amicalement
Membre enregistré
962 messages
Popularité : +183 (185 votes)
Posté le 02 juillet 2021 - 06:17
hello,
}:(

1 - Il ne faut pas s'adresser à quelqu'un en particulier : si la personne n'est plus présente ou ne veut pas répondre cela ne sert à rien.
2 - Il ne faut pas poser une question qui n'a pas rapport avec le titre initial : il faut poster un nouveau sujet.

3 - Quand le sujet commence à dater il faut se méfier de la pertinence de la question.

--
> Ami calmant, J.P
Membre enregistré
3 311 messages
Popularité : +93 (137 votes)
Posté le 02 juillet 2021 - 08:12
Salut Skynet,
Je te signale que dans la 26 le champ HTML est fait maintenant avec chrome.
Si tu veux rester dans les technologies Microsoft alors regarde
Sur le dépôt , Mr terrier à mis un dépôt Edge.
>Je suis d'accord avec Jurassic pour le reste