begin process at 2012 02 17 12:08:34
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseau & Internet

 > CONTROLE DE INTERNET EXPLORER VIA VB

CONTROLE DE INTERNET EXPLORER VIA VB


 Information sur la source

Note :
9,5 / 10 - par 2 personnes
9,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Réseau & Internet Niveau :Initié Date de création :02/04/2003 Date de mise à jour :02/04/2003 17:04:34 Vu / téléchargé :11 835 / 935

Auteur : emelaz

Ecrire un message privé
Commentaire sur cette source (33)
Ajouter un commentaire et/ou une note

 Description

ne pas oublier de declarer les references:
"MICROSOFT HTML OBJECT LIBRAIRY
"MICROSOFT MICROSOFT INTERNET CONTROL

Source

  • >>>>>>>>>>>>>>Form1
  • Private Sub Form_Load()
  • Dim ie As New ie
  • With ie
  • .Visible = True
  • .IENavigate "www.google.fr"
  • .Visible = False
  • MsgBox .GetText
  • .Visible = True
  • .FormFillField "q", "vbfrance"
  • .FormClickButton "btnG"
  • End With
  • End Sub
  • >>>>>>>>>>>>>>Créer un module de classe
  • 'INSTALLER IE 5.5 Minimun
  • Option Explicit
  • 'Ref "MICROSOFT HTML OBJECT LIBRAIRY
  • Dim WithEvents ie As InternetExplorer 'pour gérer les événement IE
  • 'Ref "MICROSOFT MICROSOFT INTERNET CONTROL
  • Dim WithEvents WebDoc As HTMLDocument 'pour gérer les événement IE.Document
  • Dim ieHTML As String, ieTxt As String, ProgressBarre As Long
  • ' pour gérer la synchro entre les procedures VBA et les événements IE
  • Dim IeStatus As Integer
  • Const Ready = -1
  • Const Busy = 0
  • Public Enum Pos
  • pTop = 1
  • pWidth = 2
  • pHeight = 3
  • pLeft = 4
  • End Enum
  • ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  • '------------------- 3 FXs pour gérer synchro entre IE et ACCESS----------------
  • Private Sub IE_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
  • On Error Resume Next
  • IeStatus = Busy
  • End Sub
  • Private Sub IE_DocumentComplete(ByVal pDisp As Object, URL As Variant)
  • On Error Resume Next
  • If pDisp <> "Microsoft Internet Explorer" Then Exit Sub
  • If ie.readyState <> READYSTATE_COMPLETE Then Exit Sub
  • IeStatus = Ready
  • Set WebDoc = ie.document
  • ieHTML = WebDoc.documentElement.innerHTML
  • ieTxt = WebDoc.documentElement.innerText
  • End Sub
  • Private Sub IsReady()
  • On Error Resume Next
  • While Not IeStatus = Ready
  • DoEvents
  • Wend
  • End Sub
  • Private Function IEStart() As Boolean
  • On Error GoTo errs
  • Set ie = New InternetExplorer
  • IeStatus = Ready
  • ie.Visible = False
  • IEStart = True
  • Exit Function
  • errs:
  • IEStart = False
  • End Function
  • Public Sub FormClickButton(ButtonName As String)
  • On Error Resume Next
  • WebDoc.All(ButtonName).Click
  • End Sub
  • Public Sub FormFillField(FieldName As String, Value As String)
  • On Error Resume Next
  • WebDoc.All(FieldName).Value = Value
  • End Sub
  • Sub IEEnd()
  • On Error Resume Next
  • Set WebDoc = Nothing
  • ie.Quit
  • Set ie = Nothing
  • IeStatus = Ready ' pour arreter la boucle isready
  • End Sub
  • Public Sub IENavigate(Addresse As String)
  • On Error Resume Next
  • IsReady
  • ie.Navigate2 Addresse
  • IsReady
  • End Sub
  • Private Sub IE_ProgressChange(ByVal Progress As Long, ByVal ProgressMax As Long)
  • On Error Resume Next
  • ProgressBarre = Progress / (ProgressMax + 0.0001) * 100
  • If ProgressBarre <= 0 Then ProgressBarre = 0.0001
  • If ProgressBarre > 100.0001 Then ProgressBarre = 100.0001
  • End Sub
  • Public Property Get Position(WhichOne As Pos) As Variant
  • On Error Resume Next
  • Select Case WhichOne
  • Case pTop
  • Position = ie.Top
  • Case pWidth
  • Position = ie.Width
  • Case pLeft
  • Position = ie.Left
  • Case pHeight
  • Position = ie.Height
  • End Select
  • End Property
  • Public Property Let Position(WhichOne As Pos, ByVal vNewValue As Variant)
  • On Error Resume Next
  • Select Case WhichOne
  • Case pTop
  • ie.Top = vNewValue
  • Case pWidth
  • ie.Width = vNewValue
  • Case pLeft
  • ie.Left = vNewValue
  • Case pHeight
  • ie.Height = vNewValue
  • End Select
  • End Property
  • Public Property Get Visible() As Boolean
  • On Error Resume Next
  • Visible = ie.Visible
  • End Property
  • Public Property Let Visible(vNewValue As Boolean)
  • On Error Resume Next
  • ie.Visible = vNewValue
  • End Property
  • Public Property Get GetProgressBarre() As Long
  • On Error Resume Next
  • GetProgressBarre = ProgressBarre
  • End Property
  • Public Property Get GetStatusText() As String
  • GetStatusText = ie.StatusText
  • End Property
  • Public Property Get GetHTML() As String
  • On Error Resume Next
  • GetHTML = ieHTML
  • End Property
  • Public Property Get GetText() As String
  • On Error Resume Next
  • GetText = ieTxt
  • End Property
  • Private Sub Class_Initialize()
  • IEStart
  • End Sub
>>>>>>>>>>>>>>Form1
Private Sub Form_Load()
Dim ie As New ie

With ie
    .Visible = True
    .IENavigate "www.google.fr"
    .Visible = False
    MsgBox .GetText
    .Visible = True
    .FormFillField "q", "vbfrance"
    .FormClickButton "btnG"
End With

End Sub

>>>>>>>>>>>>>>Créer un module de classe

'INSTALLER IE 5.5 Minimun
Option Explicit
'Ref "MICROSOFT HTML OBJECT LIBRAIRY
Dim WithEvents ie As InternetExplorer  'pour gérer les événement IE
'Ref "MICROSOFT MICROSOFT INTERNET CONTROL
Dim WithEvents WebDoc As HTMLDocument  'pour gérer les événement IE.Document
Dim ieHTML As String, ieTxt As String, ProgressBarre As Long

' pour gérer la synchro entre les procedures VBA et les événements IE
Dim IeStatus As Integer
Const Ready = -1
Const Busy = 0

Public Enum Pos
    pTop = 1
    pWidth = 2
    pHeight = 3
    pLeft = 4
End Enum

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'------------------- 3 FXs pour gérer synchro entre IE et ACCESS----------------
Private Sub IE_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
    On Error Resume Next
    IeStatus = Busy
End Sub


Private Sub IE_DocumentComplete(ByVal pDisp As Object, URL As Variant)
On Error Resume Next
    If pDisp <> "Microsoft Internet Explorer" Then Exit Sub
    If ie.readyState <> READYSTATE_COMPLETE Then Exit Sub
    IeStatus = Ready
    Set WebDoc = ie.document
    ieHTML = WebDoc.documentElement.innerHTML
    ieTxt = WebDoc.documentElement.innerText
End Sub

Private Sub IsReady()
On Error Resume Next
    While Not IeStatus = Ready
        DoEvents
    Wend
End Sub


Private Function IEStart() As Boolean

    On Error GoTo errs
    
    Set ie = New InternetExplorer
    IeStatus = Ready
    ie.Visible = False
    IEStart = True
    Exit Function
        
errs:

    IEStart = False

End Function

Public Sub FormClickButton(ButtonName As String)
    On Error Resume Next
    WebDoc.All(ButtonName).Click
End Sub

Public Sub FormFillField(FieldName As String, Value As String)
    On Error Resume Next
    WebDoc.All(FieldName).Value = Value
End Sub

Sub IEEnd()

    On Error Resume Next
    
    Set WebDoc = Nothing
    ie.Quit
    Set ie = Nothing
    IeStatus = Ready ' pour arreter la boucle isready

End Sub

Public Sub IENavigate(Addresse As String)
    On Error Resume Next
    IsReady
    ie.Navigate2 Addresse
    IsReady
End Sub

Private Sub IE_ProgressChange(ByVal Progress As Long, ByVal ProgressMax As Long)
On Error Resume Next
    ProgressBarre = Progress / (ProgressMax + 0.0001) * 100
    If ProgressBarre <= 0 Then ProgressBarre = 0.0001
    If ProgressBarre > 100.0001 Then ProgressBarre = 100.0001
End Sub

Public Property Get Position(WhichOne As Pos) As Variant
    On Error Resume Next
    Select Case WhichOne
        Case pTop
            Position = ie.Top
        Case pWidth
            Position = ie.Width
        Case pLeft
            Position = ie.Left
        Case pHeight
            Position = ie.Height
    End Select

End Property

Public Property Let Position(WhichOne As Pos, ByVal vNewValue As Variant)
    On Error Resume Next
    Select Case WhichOne
        Case pTop
            ie.Top = vNewValue
        Case pWidth
            ie.Width = vNewValue
        Case pLeft
            ie.Left = vNewValue
        Case pHeight
            ie.Height = vNewValue
    End Select
End Property

Public Property Get Visible() As Boolean
On Error Resume Next
Visible = ie.Visible
End Property

Public Property Let Visible(vNewValue As Boolean)
On Error Resume Next
ie.Visible = vNewValue
End Property

Public Property Get GetProgressBarre() As Long
On Error Resume Next
GetProgressBarre = ProgressBarre
End Property

Public Property Get GetStatusText() As String
    GetStatusText = ie.StatusText
End Property

Public Property Get GetHTML() As String
    On Error Resume Next
    GetHTML = ieHTML
End Property

Public Property Get GetText() As String
    On Error Resume Next
    GetText = ieTxt
End Property

Private Sub Class_Initialize()
    IEStart
End Sub



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

Source avec Zip Source avec une capture GESTIONNAIRE DE TÉLÉCHARGEMENT, AVEC REPRISE ET MULTITHREADI... par Madx23
Source avec Zip Source avec une capture CONVERTIR DU TEXTE RTF EN CODE HTML ET VICE-VERSA par vicosta
Source avec Zip Source avec une capture DICTIONAIRE TEXT/AUDIO/VISUELLE ANGLAIS AVEC WEBBROWSER CONT... par majnounmajda
Source avec Zip Source .NET (Dotnet) NSLOOKUP EN VB.NET OU COMMENT FAIRE UNE REQÛETE DNS EN PRÉCI... par ShareVB
Source avec Zip Source avec une capture MINI SEVEUR HTTP AVEC INTERFACE GRAPHIQUE ET IMPLÉMENTATIONS... par lemout

Commentaires et avis

Commentaire de zobyone le 02/04/2003 17:50:19

Il est bidon ce code. En plus il marche pas. t'es vraiment trop nul emelaz.Lol. Non je deconne. Il est excelent ce module de class

Commentaire de slayer le 02/04/2003 22:16:28

sa , a l'air simpas ton truc , mais j'ai pas vraiment compris a quoi sa sert , pourrait tu donné quelque explication ?

Commentaire de abys le 08/05/2003 14:31:26

super ce code mais comment faire pour remplir le formulaire si il y a une frames ?

Commentaire de abys le 08/05/2003 15:33:30

petit rajout dans le script pour les clicks sur les liens sans name ni id

Public Sub LinksClickButton(Link As Integer)
    On Error Resume Next
    WebDoc.links(Link).Click
End Sub

Commentaire de zobyone le 09/05/2003 18:29:44

Pour les Frames, c'est le gros merdier. Je suis  allé sur le support MSDN, je j'ai rien compris. Si quelqu'un a la soluce............

Commentaire de abys le 11/05/2003 20:28:49

en cherchant un peu on trouve

    WebDoc.frames(1).document.getElementsByName("test").Item(0).Value = Value

Commentaire de abys le 11/05/2003 20:30:10

http://www.experts-exchange.com/Programming/Programming_Languages/Visual_Basic/Q_20542984.html

Commentaire de abys le 12/05/2003 00:05:05

ca ne marche pas tout le temps
quand tu rempli un formulaire ca fonctionne une fois sur 5
je ne sais pas d ou cela peut venir ?
g essayer la synchro (le temps qu il charge la page) mais rien
alors lorsque je met un espion dans vb il m affiche l arbre de webdoc
et la donc 1 fois sur 5 soit y a les valeurs (des champs de forms) soit y a marque "Acces Refusé" ???
si qqun a une idee

Commentaire de danone le 17/09/2003 09:47:56

J'aime bien, merci a toi

Commentaire de danone le 17/09/2003 09:49:10

Est ce que tu as ameliore le prog depuis ?

Commentaire de zobyone le 30/09/2003 11:42:38

il n'ameliore pas le script parce que Monsieur a changé de taff, et il est tres occuppé. Oh manu du descent?

Commentaire de emelaz le 09/12/2003 03:34:12

désolé les gars mais je suis pas programeur, j'ai plus le temps.
zobyone, j'ai besoin de toi pour mon site.
j'ai ouvert une piste, ce code vous appartient, déchainez vous !

Commentaire de zobyone le 24/06/2004 11:49:54

Je suis en train d'adapter ton code en C# et c'est du sport. Si quelqu'un a des bout de code, c'a m'aiderai bien

Commentaire de zobyone le 24/06/2004 11:50:03

Je suis en train d'adapter ton code en C# et c'est du sport. Si quelqu'un a des bout de code, c'a m'aiderai bien

Commentaire de freegamer le 04/08/2004 20:22:16

Bonjours,

Peut on stopper le chargement de la page aprés un certains pourcentage ??

Car je l'ai adapter pour voila mais le probleme es que le chargement n'arrive jamais jusqua 100 % donc les champs ne sont pas rempli il faut que j'appui sur Echap pour que les champ soient remplient. Si quelqu'un sait comment faire, je posterait ma source dés que j'aurais regler ce bug

Commentaire de abys le 04/08/2004 21:01:43

comprend pas !

Commentaire de freegamer le 05/08/2004 00:17:08

Bonsoir,

La questions est plus exactement : comment stopper le chargement de la page par le code ?? (sans appuyer sur Echap)

Car les champs des pages ne sont rempli que quand la page est totalement charger !!!
Or voila (du moin chez moi) bloque le chargement de la page environ 99 %.

Donc j'aimerais pouvoir stopper le chargement à environ 90 %, j'ai essayer un Sendkeys chr$(27) mais la aussi sa attents que la page soit charger.

Sinon pour l'instant j'ai trouver autre chose, mais sa me turlupine comme même.

Commentaire de abys le 05/08/2004 17:58:56

tu peux faire un test dans la fonction IE_ProgressChange et tester si elle est a 99%

ps: je crois que le bug vient de chez toi
g tester voila et ca marche

Commentaire de freegamer le 06/08/2004 17:52:38

Bonjours,

Je n'arrive pas à le faire en passant par IE_ProgressChange.

De plus voila ne se charge toujours pas en entier et sa commence à me casser les c******

Enfin bon, j'ai essayer de mettre le sendkey dans le timer mais ou je dois rebooter ou sa ne marche pas.

Peut tu m'aider ?

Commentaire de abys le 07/08/2004 18:05:33

je crois que tu veux synchroniser IE
mais je crois que cette source bug
il me semble que j avais mis un post sur cette source comme quoi elle bugger
mais je crois que g une source qui fonctionne
faut que je la retrouve et je la poste

Commentaire de abys le 07/08/2004 18:05:37

je crois que tu veux synchroniser IE
mais je crois que cette source bug
il me semble que j avais mis un post sur cette source comme quoi elle bugger
mais je crois que g une source qui fonctionne
faut que je la retrouve et je la poste

Commentaire de freegamer le 07/08/2004 21:28:59

Bonjour,

OK, j'attend que tu la poste
Merci

FREEGAMER

Commentaire de abys le 09/08/2004 00:26:43

'dans un module
Public WithEvents IE As InternetExplorer  'IE Object
Public WithEvents HTMLpage As HTMLDocument 'la source html de la page
Public PageLoaded As Boolean ' est ce que la pages est chargee

Private Sub IE_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    'On test si c bien internet explorer
    If (pDisp Is IE) Then
        'on test si on est sur la bonne page cad si le titre de la page est "voila.Fr"
        If InStr(IE.document.title, "Voila.fr") > 0 Then

        Set HTMLpage = IE.document ' on a la source de la page
        PageLoaded = True 'on active le flag
        Else
    'sinon c pas la bonne page
            Set HTMLpage = Nothing
        End If
    Else
        PageLoaded = False 'c pas la bonne page
        Exit Sub
    End If

'on test si y a du code HTML cad si l objet n est pas nothing
    If Not m_oIE.document.body Is Nothing Then
        ' la page est chargee mettre la fonction
    Else
        'On a cliquer sur Arret dans internet explorer
        MsgBox "Stop Chargement"
    End If
End Sub

Private Sub IE_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
    'le flag permettant de savoir si la page est chargee
    PageLoaded = False
End Sub



'dans le formulaire
Private Sub btn_Click()
        If PageLoaded = False Then
            MsgBox "Page Non Chargee"
else
   'sinon ... la page est chargee la fontion peut etre executee
...
        End If
End Sub

Commentaire de abys le 09/08/2004 00:28:07

c mon ie ou l affichage de vbfrance bug,le texte est troqué

Commentaire de freegamer le 09/08/2004 16:57:15

Bonjour,

Même ton code ne marche pas il manque quelque chose ?
Les deux premiere ligne du module ne sont pas reconnu voila le message :

"Valide seulement dans un module d'objet"

Au fait ce que j'aimerais faire c'est un programme me permettant d'acceder à mes mails s'en avoir à aler sur Voila, puis la section E-mail, Taper son noms et son mot de passe pour enfin acceder à ces mails.

Avec le code de cette source, j'arrive à acceder à la page des E-mails mais je dois arreter le chargement pour pouvoir continuer donc il faudrait qua environ 95 % on envoi ESC pour arreter le chargement.

Voila en esperant que je me soit fait comprendre.Merci de repondre

FREEGAMER

Commentaire de augstef le 10/08/2004 04:44:49

Hi, searching the net for a problem that I have driving the Internet Explorer using VBA I found this code that it looks can help me, but unfortunatlly I do know enough French to be able to understand everything - it helps just my native language that has common words but not enough. Some one of you speak English to help me a litlle bit?
thank you in advance

Commentaire de polemos le 30/09/2004 23:46:08

Public Sub LinksClickButton(Link As Integer)
    On Error Resume Next
    WebDoc.links(Link).Click
End Sub

Salut,
Comment fais-tu pour connaitre l'indexation de tes lients (pour connaitre le n° Link de ton lien) ?
Merci par avance...

Commentaire de mat74 le 07/01/2005 09:28:13

zobyone => si tu reussi a passer le code en C# sa m'interesse car sa fait un momment que je cherche a faire qq chose de ressemblant
merci

Commentaire de Hobby le 11/03/2005 12:09:49

alors là merci, c'est Génial.
J'ai pas encore tous testé mais j'arrive déjà a quelque résultat.

J'ai mis isready en public, parceque lorsque tu fait un
.FormClickButton "" et ensuite
.GetHTML tu resoit le code de la page du post (normal) donc cela donne:
.FormClickButton ""
.IsReady
.GetHTML
Et la nickel tu as la page final

Merci
Olivier

Commentaire de Hobby le 16/03/2005 11:48:04

Bonjour,

Quelqu'un a trouvé une solution, pour connaitre le nombre et avoir la liste des liens sur une page ?
J'ai tenté ceci:
Public Property Get GetListLinks() As String
    Dim a_link As HTMLLinkElement
    Dim txt As String
    On Error Resume Next
    For Each a_link In WebDoc.links
        txt = txt & a_link.href & vbCrLf
    Next a_link
    GetListLinks = txt
End Property

Mais cela ne donne rien.
Merci
Olivier

Commentaire de cymichel le 26/04/2005 22:45:17

Bonjour,
Merci pour ce code que je n'arrive malheureusement pas à utiliser pour automatiser le click d'un bouton qui référence du javascript dans la page html (ni name, ni id). J'ai essayé la routine de Hobby mais sans succès et je me pose la même question que Polemos. Quelqu'un peut-il m'aider ?
merci
Michel

Commentaire de ArRkHaOn le 05/05/2005 22:52:58

Personne ne sait comment cliquer sur un button qui n'a pas de nom dans un formulaire via cette source ? merci ^^

Commentaire de jpzenitram le 09/05/2005 19:36:40

J'ai utilisé Submit avec le nom du formulaire en argument, je poste le code demain.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales