WebBrowser chargement terminer

Dudule100 561 Messages postés jeudi 25 octobre 2012Date d'inscription 22 janvier 2017 Dernière intervention - 2 déc. 2015 à 19:31 - Dernière réponse : Dudule100 561 Messages postés jeudi 25 octobre 2012Date d'inscription 22 janvier 2017 Dernière intervention
- 7 déc. 2015 à 19:47
Bonjour,

Je voudrais savoir comment faire pour que, une fois la page completement chargé, la suite de mon programme se fasse. J'ai essayer de tester un truc avec ProcessMax mais je n'ai pas réussi. Du coup pour le moment je fait avec un system de pause mais ce n'est pas très fiable car sa peut changer d'une machine a une autre.

Merci de votre aide.
Afficher la suite 

Votre réponse

18 réponses

Meilleure réponse
Dudule100 561 Messages postés jeudi 25 octobre 2012Date d'inscription 22 janvier 2017 Dernière intervention - 5 déc. 2015 à 23:45
1
Merci
la page est déjà charger ! c est quand il y a me clic sur le bouton input que je veux attendre la fin de la page avant de passer à la suite.

Merci Dudule100 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

vb95 1683 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 11 octobre 2018 Dernière intervention > Dudule100 561 Messages postés jeudi 25 octobre 2012Date d'inscription 22 janvier 2017 Dernière intervention - 6 déc. 2015 à 10:19
A tester
Une fois la page internet commencée à être chargée on ajoute le gestionnaire d'attente avec le AddHandler. Une fois le chargement fini la procédure ProgrammeContinue s'exécute : elle libère l'instance du Webbrowser et continue le programme au Form3.Load .
Je ne garantis rien : je n'ai pas testé


Public Class Form1
Public url As String

Dim instance As SendKeys
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Then 'Verification que les textbox contiennent bien des caractères
MsgBox("Veillez complétez tous les champs ou vérifiez que vous avez rentrer les bonnes informations.") 'Texte afficher quand il y a une erreur
Else
WebBrowser1.Document.GetElementById("bgcdw_login_form_username").SetAttribute("value", TextBox1.Text) 'Completion de l'id du site via le contenue de la text.box1
WebBrowser1.Document.GetElementById("bgcdw_login_form_password").SetAttribute("value", TextBox2.Text) 'Completion du mdp du site via le contenue de la text.box1
Dim inputs As HtmlElementCollection 'Début de l'action de clic
inputs = WebBrowser1.Document.GetElementsByTagName("input") 'Définition du type de bouton
For Each input As HtmlElement In inputs
If input.GetAttribute("className") = "bgcdw_button bgcdw_login_form_login" Then 'La valeur input du bouton
input.InvokeMember("Click") 'Le clic a proprement parler
End If
Next
' chargement de la page Internet
url = WebBrowser1.Url.ToString
' Ajoute un gestionnaire d'événement qui continue le programme une fois le chargement terminé.
AddHandler webBrowser1.DocumentCompleted, New _
WebBrowserDocumentCompletedEventHandler(AddressOf Programmcontinue)
End If
End Sub

Private Sub Programmcontinue(ByVal sender As Object, _
ByVal e As WebBrowserDocumentCompletedEventArgs)

Dim webBrowserload As WebBrowser = CType(sender, WebBrowser)

' Supprime l'instance du WebBrowser maintenant que le chargement est terminé.
webBrowserLoad.Dispose()
' la suite de ton code une fois la page chargée
Form3.Show() 'Affichage de la form3
Me.Close()
End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Me.Hide()
Form2.Show()
End Sub
Dudule100 561 Messages postés jeudi 25 octobre 2012Date d'inscription 22 janvier 2017 Dernière intervention - 6 déc. 2015 à 10:59
Alors sa marche bien mais j'ai un petit problème ^^ ! Sa m’ouvre la page 2 fois dans mon navigateur (chrome)
Dudule100 561 Messages postés jeudi 25 octobre 2012Date d'inscription 22 janvier 2017 Dernière intervention - 6 déc. 2015 à 11:03
Bon je viens de résoudre le problème ! Il fallait juste supprimer webBrowserLoad.Dispose()
vb95 1683 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 11 octobre 2018 Dernière intervention > Dudule100 561 Messages postés jeudi 25 octobre 2012Date d'inscription 22 janvier 2017 Dernière intervention - 7 déc. 2015 à 18:55
si le problème est résolu ferme le s'il te plait !
Merci
L'autre problème concerne un autre post
Dudule100 561 Messages postés jeudi 25 octobre 2012Date d'inscription 22 janvier 2017 Dernière intervention - 6 déc. 2015 à 11:07
Maintenans j'ai un autre probleme, je voudrais que quand la page a fini de chargé, il vérifie si il y a ce texte dans la page avant d'afficher la forme 2 :
http://codes-sources.commentcamarche.net/forum/affich-10057125-webbrowser-verifie-texte#p10057125
Commenter la réponse de Dudule100
jordane45 22830 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 15 octobre 2018 Dernière intervention - 2 déc. 2015 à 19:37
Dudule100 561 Messages postés jeudi 25 octobre 2012Date d'inscription 22 janvier 2017 Dernière intervention - 2 déc. 2015 à 23:15
Merci ! J'avais déjà été voir sur cette page mais j'avais pas compris le fonctionnement !
Commenter la réponse de jordane45
Dudule100 561 Messages postés jeudi 25 octobre 2012Date d'inscription 22 janvier 2017 Dernière intervention - 3 déc. 2015 à 22:30
0
Merci
du coup peut tu m'aider ?
Commenter la réponse de Dudule100
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 3 déc. 2015 à 22:48
0
Merci
Bonjour,
La procédure évènementielle que t'a signalée Jordane45 se déclenche automatiquement à la fin du chargement de ton document.
Il te suffit alors d'y passer à true, par exemple, une variable booléenne (déclarée générale) de ton choix et de subordonner (dans ta procédure principale) la continuation de tes instructions au passage à True de cette variable (une simple boucle while fera l'affaire)
Commenter la réponse de ucfoutu
Dudule100 561 Messages postés jeudi 25 octobre 2012Date d'inscription 22 janvier 2017 Dernière intervention - 3 déc. 2015 à 23:06
0
Merci
OK je testé sa après les cours et je te tien au courant
Commenter la réponse de Dudule100
Dudule100 561 Messages postés jeudi 25 octobre 2012Date d'inscription 22 janvier 2017 Dernière intervention - 4 déc. 2015 à 16:43
0
Merci
Bon ba je sais pas j'ai essayer différent truc mais sa marche pas ! Apres je débute en vb.net donc bon je vais rester avec mes timer.
Commenter la réponse de Dudule100
vb95 1683 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 11 octobre 2018 Dernière intervention - 5 déc. 2015 à 15:03
0
Merci
Bonjour !
A tester d'après les informations suggérées par Jordane45
Code non testé par moi même

Private Sub LoadPage()

' Chargement de la page

' Créer une nouvelle instance du WebBrowser
Dim webBrowserForLoad As New WebBrowser()

' Ajoute un gestionnaire d'événement qui continue le programme une fois le chargement terminé.
AddHandler webBrowserForLoad.DocumentCompleted, New _
WebBrowserDocumentCompletedEventHandler(AddressOf Programmcontinue)

' On charge la page
webBrowserForLoad.Url = New Uri("\\myshare\help.html")

End Sub

Private Sub Programmcontinue(ByVal sender As Object, _
ByVal e As WebBrowserDocumentCompletedEventArgs)

Dim webBrowserForLoad As WebBrowser = CType(sender, WebBrowser)

' Supprime l'instance du WebBrowser maintenant que le chargement est terminé.
webBrowserLoad.Dispose()

' ici le code une fois le chargement terminé

End Sub

Dudule100 561 Messages postés jeudi 25 octobre 2012Date d'inscription 22 janvier 2017 Dernière intervention - 5 déc. 2015 à 16:33
Donc en gros tout mon code je doit le metre apres sa : webBrowserLoad.Dispose()

Voila tout mon code :
Public Class Form1
    Public url As String

    Dim instance As SendKeys
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        If TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Then 'Verification que les textbox contiennent bien des caractères
            MsgBox("Veillez complétez tous les champs ou vérifiez que vous avez rentrer les bonnes informations.") 'Texte afficher quand il y a une erreur
        Else
            WebBrowser1.Document.GetElementById("bgcdw_login_form_username").SetAttribute("value", TextBox1.Text) 'Completion de l'id du site via le contenue de la text.box1
            WebBrowser1.Document.GetElementById("bgcdw_login_form_password").SetAttribute("value", TextBox2.Text) 'Completion du mdp du site via le contenue de la text.box1
            Dim inputs As HtmlElementCollection 'Début de l'action de clic
            inputs = WebBrowser1.Document.GetElementsByTagName("input") 'Définition du type de bouton
            For Each input As HtmlElement In inputs
                If input.GetAttribute("className") = "bgcdw_button bgcdw_login_form_login" Then 'La valeur input du bouton
                    input.InvokeMember("Click") 'Le clic a proprement parler
                End If
            Next
            hbwait(15000)
            url = WebBrowser1.Url.ToString
            Form3.Show() 'Affichage de la form3
            Me.Close()
        End If
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Me.Hide()
        Form2.Show()
    End Sub

    Friend Sub hbwait(ByVal ms_to_wait As Long) 'Fonction d'attente
        Dim endwait As Double
        endwait = Environment.TickCount + ms_to_wait
        While Environment.TickCount < endwait
            System.Threading.Thread.Sleep(1)
            Application.DoEvents()
        End While
    End Sub

End Class


Si j'ai bien compris il faut que je mette juste cette partie la :
url = WebBrowser1.Url.ToString
            Form3.Show() 'Affichage de la form3
            Me.Close()


Se qui veut dire que les 2 private Sub je doit les mettre dans celui de mon bouton ?
vb95 1683 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 11 octobre 2018 Dernière intervention > Dudule100 561 Messages postés jeudi 25 octobre 2012Date d'inscription 22 janvier 2017 Dernière intervention - 5 déc. 2015 à 23:19
Dans la Sub Button1_Click quelle instruction charge la page proprement dite ?
Dudule100 561 Messages postés jeudi 25 octobre 2012Date d'inscription 22 janvier 2017 Dernière intervention - 7 déc. 2015 à 19:47
Aucune ! La page est deja chargé lors du lancement de la forme.
Commenter la réponse de vb95

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.