Récapitulatif des commandes du WebBrowser Microsoft
Date 23/6/2005 0:00:00 | Sujet : Trucs et astuces
| La récupération des commandes spécifiques au WebBrowser Navigateur Web Microsoft n'est pas une sinécure.
Pour avoir beaucoup cherché au cours de ces mois, je trouve normal aujourd'hui de remercier les diverses personnes que j'ai beaucoup sollicitées en mettant ce récapitulatif à la disposition des autres développeurs qui sauront certainement en profiter à leur tour.
Suite... NOTA : HTML_EXPLORER est le nom donné au champ Activex Navigateur Web Microsoft
IL FAUT PLACER LES COMMANDES SUIVANTES DANS UN BOUTON OU UNE OPTION DE MENU
// RETOURNER À L'ACCUEIL
HTML_EXPLORER>>GoHome()
// AFFICHER LA PAGE PRÉCÉDENTE
HTML_EXPLORER>>GoBack()
// AFFICHER LA PAGE SUIVANTE
HTML_EXPLORER>>GoForward()
// OUVRE LA FENETRE ENREGISTRER-SOUS
HTML_EXPLORER>>execWB(4,0,0,0)
// TRADUIRE EN FRANÇAIS LA PAGE EN ANGLAIS AFFICHÉE
HTML_EXPLORER>>Navigate("(tammairanslip)location.href='http://trans.voila.fr/voila?systran_url='+escape(document.location)+'&systran_id=Voila-fr&systran_charset=utf-8&systran_lp=en_fr;'")
//Selon la langue, au lieu de "systran_lp=fr_en" à la fin mettre :
//systran_lp=
//fr_en----->Français vers Anglais
//en_fr----->Anglais vers Fran?ais
//fr_de----->Français vers Allemand
//de_fr----->Allemand vers Fran?ais
//fr_es----->Français vers Espagnol
//es_fr----->Espagnol vers Fran?ais
//fr_pt----->Français vers Portugais
//pt_fr----->Portugais vers Fran?ais
//fr_it----->Français vers Italien
//it_fr----->Italien vers Fran?ais
//fr_nl----->Fran?ais vers Néerlandais
//nl_fr----->Néerlandais vers Français
//en_de----->Anglais vers Allemand
//de_en----->Allemand vers Anglais
//en_es----->Anglais vers Espagnol
//es_en----->Espagnol vers Anglais
//en_pt----->Anglais vers Portugais
//pt_en----->Portugais vers Anglais
//en_it----->Anglais vers Italien
//it_en----->Italien vers Anglais
//en_nl----->Anglais vers Néerlandais
//nl_en----->Néerlandais vers Anglais
//en_ru----->Anglais vers Russe
//ru_en----->Russe vers Anglais
// IMPRIMER DIRECTEMENT LA PAGE AFFICHÉE
HTML_EXPLORER>>Navigate("(tammairanslip)self.print()")
// OUVRE LA FENÊTRE D'APERCU DE L'IMPRESSION DE LA PAGE AFFICHÉE
HTML_EXPLORER>>execWB(7,0,0,0)
// AFFICHE LE CONTENU DU SOURCE DE LA PAGE AVEC NOTEPAD++
docframeH est un objet Automation dynamique = HTML_EXPLORER>>document
WSourceDeLaPage est une chaine = docframeH>>body>>outerHTML()
// HTML1 est un champ html caché, à placer l'exterieur de la fenêtre
HTML1 = WSourceDeLaPage
fSauveTexte(fRepEnCours()+"\MaPageweb.html",HTML1..ValeurAffichée)
//lanceappliassociee("C:\Program Files\TextPad 4\TextPad.exe -u MaPageweb.txt")
MonTexte est une chaîne
//Vous obtiendrez un affichage optimisé du source (html, xml, etc..) en utilisant
//NotePad++ que vous pouvez télécharger à l'adresse suivante
//http://notepad-plus.sourceforge.net/fr/site.htm
MonTexte = "C:\Program Files\Notepad++\notepad++.exe " + fRepEnCours()+"\MaPageweb.html"
LanceAppli(MonTexte)
// SELECTIONNE TOUTE LA PAGE
HTML_EXPLORER>>execWB(17,0,0,0)
// COPIE LA SÉLECTION DE LA PAGE DANS LE PRESSE-PAPIER
HTML_EXPLORER>>execWB(12,0,0,0)
// COLLE LE CONTENU DU PRESSE-PAPIER DANS LE CHAMP CLIQUÉ DANS LA PAGE
HTML_EXPLORER>>execWB(13,0,0,0)
// CHANGE LA TAILLE DU TEXTE DE LA PAGE (TAILLE DU TEXTE = 1 À 4 )
WTaille est un entier // contient un chiffre 1 à 4 précisant la taille
// 1 = taille petite
// 2 = taille moyenne
// 3 = taille grande
// 4 = taille très grande
HTML_EXPLORER>>execWB(19,2,WTaille,0)
// STOPPE LE CHARGEMENT EN COURS DE LA PAGE
HTML_EXPLORER>>Stop()
//OUVRE LA FENÊTRE RECHERCHER UN MOT DANS LA PAGE ( CTRL+F DE INTERNET EXPLORER )
//Permet de simuler un clic gauche dans le champ html pour l'obliger à prendre le focus !
nPos,nPosX,nPosY sont des entiers
nPos = CurseurPos(cpClient)
nPosX = PoidsFaible(nPos)
nPosY = PoidsFort(nPos)
EnvoieTouche("{BTNGAUCHE,"+NumériqueVersChaîne(nPosX,"d")+","+NumériqueVersChaîne(nPosY,"d")+"}",Handle(HTML_EXPLORER))
//position du curseur après ouverture de la fenêtre Rechercher
CurseurPos(cpClient,nPosX,nPosY)
// Lance l'ouverture de la fenetre IE de recherche
EnvoieTouche("^{f}",Handle(HTML_EXPLORER))
RepriseSaisie(HTML_EXPLORER)
//LANCE UN MOTEUR DE RECHERCHE :
SMonTxt est une chaine // qui contient les mots à rechercher
// MOTEUR est un champ précisant le moteur à lancer de votre choix
Selon MOTEUR
cas 1 : fnmain.saisie1="http://www.altavista.fr/cgi-bin/query?pg=q&sc=on&q="+SMonTxt+"&kl=XX&what=fr&recherche.x=47&recherche.y=7"
cas 2 : fnmain.saisie1="http://www.excite.fr/search.gw?perPage=8&trace=a&look=excite_fr&search="+SMonTxt+"&c=web.fr"
cas 3 : fnmain.saisie1="http://www.google.com/search?q="+SMonTxt+"&meta=lr%3D%26hl%3Dfr&btnG=Recherche+Google"
cas 4 : fnmain.saisie1="http://www.lycos.fr/cgi-bin/pursuit?matchmode=and<=fr&mtemp=main.sites&query="+SMonTxt+"&cat=fr&x=26&y=0"
cas 5 : fnmain.saisie1="http://www.netscape.fr/rech?enc=iso&q="+SMonTxt+"&p=wf&style=0"
cas 6 : fnmain.saisie1="http://rechercher.nomade.tiscali.fr/recherche.asp?MT="+SMonTxt+"&s="+SMonTxt+"&opt=0"
cas 7 : fnmain.saisie1="http://search.ke.voila.fr/S/voila?dt=&kw="+SMonTxt
cas 8 : fnmain.saisie1="http://fr.search.yahoo.com/search/fr?p="+SMonTxt
FIN
// LANCE LE CHARGEMENT DE LA PAGE ( DOCUMENT OU URL )
WRes est un entier
WRes = Position(SAISIE1,".url")
Sablier(Vrai)
SI PAS WRes = 0 ALORS
// lance un .doc ou un .pdf par exemple
LanceAppliAssociée(SAISIE1)
SINON
// url html
HTML_EXPLORER>>Navigate(SAISIE1)
FIN
Sablier(Faux)
//OUVRE LA FENÊTRE AJOUT AUX FAVORIS
SI Majuscule(Gauche(SAISIE1,4)) = "HTTP" ALORS
HTML_EXPLORER>>Navigate("(tammairanslip)window.external.addfavorite(location.href,document.title)")
FIN
LES COMMANDES SUIVANTES SONT A PLACER DANS DES PROCÉDURES
// PERMET DE RECUPERER L'URL EN COURS ET LE TITRE DE LA PAGE EN COURS
PROCEDURE XWEB_CommandStateChange(LCommande, bEtat)
// Traitement de l'événement CommandStateChange
//A la fin de cette procédure, recharge le champ adresse url avec l'adresse
//réelle de la fenêtre en cours
SAISIE1 = HTML_EXPLORER>>LocationURL
// Recharge le titre de la fenêtre contenant l'activex
FenActivex..Titre = HTML_EXPLORER>>LocationName
// L'UTILISATION DE CETTE API FORCE L'AFFICHAGE D'UNE PAGE WEB À L'INTÉRIEUR DU CHAMP
// DE L'ACTIVEX HTML_EXPLORER ET EMPÊCHE L'OUVERTURE D'UNE FENÊTRE IE. EXTÉRIEURE
// À LA FENÊTRE WINDEV
// Placer cette ligne dans les déclarations globales de la fenêtre de l'activex
hook est un entier = API("user32","SetWindowsHookExA", 7 , &mousehookproc , 0 , API("kernel32","GetCurrentThreadId") )
// Placer cette procédure dans les procédures locales
PROCEDURE mousehookproc(ncode est un entier sur 4 octets, wparam est un entier sur 4 octets, lparam est un entier sur 4 octets)
QUAND EXCEPTION
RENVOYER API("user32","CallNextHookEx",hook ,ncode, wparam, lparam)
FIN
// cette procédure permet d'inhiber l'ouverture d'une autre fenêtre d'internet explorer et
// permet donc de continuer à afficher dans la fenêtre Windev
SI HTML_EXPLORER<>Null ALORS
SI ncode>=0 ALORS
SI wparam=0x202 ALORS
winclass est une chaîne ASCIIZ de 128
API("user32","GetClassNameA",API("user32","GetFocus"),&winclass,128)
SI winclass="Internet Explorer_Server" ALORS
txtr est un objet Automation dynamique = HTML_EXPLORER>>document>>activeElement
SI txtr<>Null ALORS
SI txtr>>tagName = "FRAME" ALORS
txtf est un objet Automation dynamique = HTML_EXPLORER>>document>>frames(txtr>>name)>>document>>activeElement
SI txtf>>tagName="A" ALORS
SI txtf>>target = "_blank" OU txtf>>target="droite" ALORS
txtf>>target = "_parent"
FIN
FIN // si tagname=a
libérer txtf
SINON
SI txtr>>tagName="A" ALORS
SI txtr>>target = "_blank" OU txtr>>target="droite" ALORS
txtr>>target = "_parent"
FIN
FIN
FIN // si tagname=frame
FIN // si txtr<>null
libérer txtr
FIN // si winclass
FIN // si wparam=0x202
FIN // si ncode>=0
FIN // si activex<>null
RENVOYER API("user32","CallNextHookEx",hook ,ncode, wparam, lparam)
// SUPPRESSION DES POPUPS INTEMPESTIFS
// Placer cet évènement dans l'Initialisation de l'Activex HTML_EXPLORER
ActiveXEvénement("popup",HTML_EXPLORER,"NewWindow2") // supprime les popups
// Placer cette procédure dans les procédures locales
PROCEDURE Popup(obj , annulation )
// si 0 = autorisation
// si 1 = suppression
//Si vous le désirez vous pouvez autoriser ou interdire les popups en utilisant
//une zone WCodeAutorisé que vous pourrez gérer à votre guise
annulation = WCodeAutorise
SI WCodeAutorise = 1 ALORS // pas de popup
HTML_EXPLORER>>Navigate("(tammairanslip)if (parent.frames.lenght);parent.location.href=self.location;")
FIN
|
|