ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Petite étude sur l'interaction de FoxPro avec l'internet explorer   



L'auteur

Mike Gagnon
Canada Canada
Membre Simple
# 0000000025
enregistré le 14/10/2004

Gagnon Mike
Pointe Cla H9R 3K8
de la société Carver Technologies Inc.
Fiche personnelle


Note des membres
pas de note

Contributions > 09 - Automation > Internet Explorer

Petite étude sur l'interaction de FoxPro avec l'internet explorer
# 0000000076
ajouté le 19/11/2004 13:47:10 et modifié le 20/01/2007
consulté 11260 fois
Niveau initié

Version(s) Foxpro :
VFP 9.0
VFP 8.0
VFP 7.0

Description

Voici quelque fonctions pour utiliser l'internet explorer avce VFP.

Code source :
&& Les contantes de Internet Explorer

*Constants for ExecWB first parameter
#DEFINE OLECMDID_OPEN 1
#DEFINE OLECMDID_NEW 2
#DEFINE OLECMDID_SAVE 3
#DEFINE OLECMDID_SAVEAS 4
#DEFINE OLECMDID_SAVECOPYAS 5
#DEFINE OLECMDID_PRINT 6
#DEFINE OLECMDID_PRINTPREVIEW 7
#DEFINE OLECMDID_PAGESETUP 8
#DEFINE OLECMDID_SPELL 9
#DEFINE OLECMDID_PROPERTIES 10
#DEFINE OLECMDID_CUT 11
#DEFINE OLECMDID_COPY 12
#DEFINE OLECMDID_PASTE 13
#DEFINE OLECMDID_PASTESPECIAL 14
#DEFINE OLECMDID_UNDO 15
#DEFINE OLECMDID_REDO 16
#DEFINE OLECMDID_SELECTALL 17
#DEFINE OLECMDID_CLEARSELECTION 18
#DEFINE OLECMDID_ZOOM 19
#DEFINE OLECMDID_GETZOOMRANGE 20
#DEFINE OLECMDID_UPDATECOMMANDS 21
#DEFINE OLECMDID_REFRESH 22
#DEFINE OLECMDID_STOP 23
#DEFINE OLECMDID_HIDETOOLBARS 24
#DEFINE OLECMDID_SETPROGRESSMAX 25
#DEFINE OLECMDID_SETPROGRESSPOS 26
#DEFINE OLECMDID_SETPROGRESSTEXT 27
#DEFINE OLECMDID_SETTITLE 28
#DEFINE OLECMDID_SETDOWNLOADSTATE 29
#DEFINE OLECMDID_STOPDOWNLOAD 30

*Constants for ExecWB second parameter
#DEFINE OLECMDEXECOPT_DODEFAULT 0
#DEFINE OLECMDEXECOPT_PROMPTUSER 1
#DEFINE LECMDEXECOPT_DONTPROMPTUSER 2
#DEFINE OLECMDEXECOPT_SHOWHELP 3

*Constants for QueryStatusWB return values
#DEFINE OLECMDF_SUPPORTED 1 &&Command is supported by this object.
#DEFINE OLECMDF_ENABLED 2 &&Command is available and enabled.
#DEFINE OLECMDF_LATCHED 4 &&Command is an on-off toggle and is currently on.
#DEFINE OLECMDF_NINCHED 8 &&Reserved for future use.

*Constants for ShowWindow second paramter
#DEFINE SW_NORMAL    1
#DEFINE SW_MAXIMIZE  3
#DEFINE SW_MINIMIZE  6

*Constants for SendMessage second parameter
#DEFINE WM_GETICON 0x7F
#DEFINE WM_SETICON 0x80

*Constants for SendMessage third parameter
#DEFINE ICON_SMALL 0
#DEFINE ICON_BIG 1

&& Comment créer une instance d’Internet Explorer.

oOutlook = CREATEOBJECT('internetexplorer.application')
oOutlook.navigate('about:blank')
oOutlook.visible = .t.

&& Comment obtenir le contenu d’un page Web
   && a) Seulement le texte
oIE = createobject('internetexplorer.application')
oIE.Navigate('www.tek-tips.com')
lcStr=oIe.Document.body.innertext
?lcStr

  && b) Le texte et les tags HTML
oIE = createobject('internetexplorer.application')
oIE.Navigate('www.tek-tips.com')
lcStr=oIe.Document.body.innerHTML
?lcStr



&& Comment activer la boite dialogue ‘Sauver sous’
oOutlook = CREATEOBJECT('internetexplorer.application')
oOutlook.navigate('about:blank')
_screen.Visible = .f.
oOutlook.ExecWB(OLECMDID_SAVEAS , OLECMDEXECOPT_DODEFAULT)
oOutlook.visible = .t.




&& Comment récupérer tous les liens d’une page Web
CLEAR
oIE = CreateObject([InternetExplorer.Application])
INKEY(5)
oIE.Navigate([www.tek-tips.com])
INKEY(5)
 for i=1 to oIE.Document.Links.Length-1
?    oIE.Document.Links.Item(i).toString
next
oIE.quit
RELEASE oIE


&& Comment déterminer le nombre de cadres d’une page Web.
Clear
oIE = Createobject([InternetExplorer.Application])
Inkey(5)
oIE.Navigate([www.microsoft.com])
Inkey(5)
?oIE.Document.Frames.Length
oIE.Quit
Release oIE

&&Comment monter le set-up d’une page Web.
Clear
oIE = Createobject([InternetExplorer.Application])
oIE.Navigate([www.microsoft.com])
inkey(5)
_screen.visible = .f.
oIE.ExecWB(OLECMDID_PAGESETUP,OLECMDEXECOPT_DODEFAULT)

&& Comment enlever les barres déroulantes de droite et du bas.
Clear
oIE = Createobject([InternetExplorer.Application])
oIE.Navigate([www.microsoft.com])
inkey(5)
oIE.Document.Body.Style.OverflowX = 'hidden'
oIE.Document.Body.Style.OverflowY = 'hidden'
oIe.visible = .t.

&&Comment sélectionner toute une page Web et la copier dans la presse papier
Clear
oIE = Createobject([InternetExplorer.Application])
oIE.Navigate([www.microsoft.com])
INKEY(5)
oIE.ExecWB(OLECMDID_SELECTALL , OLECMDEXECOPT_DODEFAULT)
oIE.ExecWB(OLECMDID_COPY , OLECMDEXECOPT_DODEFAULT)






&&9. Comment montrer les propriétés d’une une page Web.
Clear
oIE = Createobject([InternetExplorer.Application])
oIE.Navigate([www.microsoft.com])
INKEY(5)
_vfp.visible = .f.
oIE.ExecWB(OLECMDID_PROPERTIES , OLECMDEXECOPT_DODEFAULT)


&& 10 Comment sauvegarder une page Web en document MHTML (Archive Web).
A moter que les sendkeys peuvent etre différents dépendant de la version et le language de votre internet explorer.

Local lcFile
lcFile = 'c:\'+Substr(Sys(2015),2,8)+'.mht'
oIE = Createobject('internetexplorer.application')
oIE.navigate('www.atoutfox.org')
Inkey(6)
oIE.Visible =.T.
sp=Createobject("Wscript.Shell")
sp.SendKeys('%F')
sp.SendKeys('a')
sp.SendKeys('&lcFile')
Inkey(1)
sp.SendKeys("{TAB}")
sp.SendKeys('W')
sp.SendKeys("{TAB}")
sp.SendKeys('S')
oIE.Quit
Commentaires
le 26/05/2008, ybenam a écrit :
oIE = createobject('internetexplorer.application')
oIE.Navigate('www.tek-tips.com')
lcStr=oIe.Document.body.innertext
?lcStr


En fait le code cité renvoie une erreur car IExplore n'aura pas terminé son transitionning et le body à ce moment n'est pas accessible(non créé).Rajouter le code suivant systématiquement avant d'appeler le BODY:

do while oIE.busy or oIE.readystate#4
enddo
Cordialement

le 26/05/2008, Mike Gagnon a écrit :
Cela depned toujours de la connexion. Un connexion a haute vitesse ne cause pas cette erreur
le 26/05/2008, Francis Faure a écrit :
Ybenam,
voir http://www.atoutfox.org/articles.asp?ACTION=FCONSULTER&ID=0000000134

Car le "do while" mérite une petite temporisation,
et un cas de sortie en TIMEOUT
pour éviter une possible boucle sans fin

Cordialement

le 05/06/2009, yoyo31 a écrit :
Qui a fait le test avec Internet Explorer 8 car il faut utiliser SHDocVw.InternetExplorer mais je ne sais pas comment

Merci

le 05/06/2009, Mike Gagnon a écrit :
Le code ci-haut fonctionne avec Internet Explorer 8.
le 10/01/2012, Francis Faure a écrit :
Mike,
il y a un truc que je ne m'explique pas,

tous les codes de ton articles fonctionnaient a merveille jusqu'a maintenant

maintenant,
j'ai des bizzareries,

exemple, ton code :


&& Comment récupérer tous les liens d’une page Web
CLEAR
oIE = CreateObject([InternetExplorer.Application])
INKEY(5)
oIE.Navigate([www.tek-tips.com])
INKEY(5)
for i=1 to oIE.Document.Links.Length-1
? oIE.Document.Links.Item(i).toString
next
oIE.quit
RELEASE oIE


il fonctionne avec IE 9 et donne bien les liens,
mais si tu remplace
oIE.Navigate([www.tek-tips.com])
avec
oIE.Navigate([www.google.com])
alors c'est une liste d'objet qui est retourné et non la chaine

je ne suis pas sur que ce soit lié a IE9.., peut être une histoire d'encodage des pages ? a ton avis avisé ?

Cordialement
francis

le 10/01/2012, Mike Gagnon a écrit :
HTML5 je crois


www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2024.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3