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









Cet article provient de WDForge.org
http://old.wdforge.org

L'adresse de cet article est :
http://old.wdforge.org/article.php?storyid=180