WebBrowser et événements

Le
jac_be
Bonjour tout le monde,

Jérémy m'a mias sur une piste concernant le WebBrowser mais j'ai un
peu de difficulter à comprendre. Je ne suis pas encore un spécialiste
de VB Net Dommage :-)

J'ai trouvé sur MSDN (http://msdn.microsoft.com/en-us/library/aa752085
(VS.85).aspx) une liste des événements liés au WebBrowser. Comment le=
s
utiliser ??

Par exemple : DownloadComplete Fires when a navigation operation
finishes, is halted, or fails.

Comment profiter de cet événement avec mon WebBrowser ??

Toutes explications ou exemples seront les bienvenus car je tourne en
rond dans la documentation MSDN

Merci pour vos réponses


Jacques
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Alex C.
Le #19120081
On 15 avr, 15:04, wrote:
Bonjour tout le monde,

Jérémy m'a mias sur une piste concernant le WebBrowser mais j'ai un
peu de difficulter à comprendre. Je ne suis pas encore un spécialiste
de VB Net ...Dommage :-)

J'ai trouvé sur MSDN (http://msdn.microsoft.com/en-us/library/aa752085
(VS.85).aspx) une liste des événements liés au WebBrowser. Comment les
utiliser ??

Par exemple : DownloadComplete  Fires when a navigation operation
finishes, is halted, or fails.

Comment profiter de cet événement avec mon WebBrowser ??

Toutes explications ou exemples seront les bienvenus car je tourne en
rond dans la documentation MSDN

Merci pour vos réponses

Jacques


Bonjour,

Ben il suffit de s'abonner à l'évènement !
Désolé si je réponds à coté de la question mais j'essaie :o)

Je ne sais pas comment est déclaré votre Webbrowser, je vais prendre
cet exemple :

Private Withevents MyBrowser as WebBrowser

Private Sub WB_Initialization()

MyBrowser = New WebBrowser
Addhandler Myrowser.DownloadComplete, Addressof WB_DL_Complete
End Sub

Private Sub WB_DL_Complete
(...) Code a exécuter lors du déclenchement de l'évènement (...)
End Sub

AlexC.
jac_be
Le #19120201
On 15 avr, 09:21, "Alex C."
On 15 avr, 15:04, wrote:



> Bonjour tout le monde,

> Jérémy m'a mias sur une piste concernant le WebBrowser mais j'ai un
> peu de difficulter à comprendre. Je ne suis pas encore un spécialis te
> de VB Net ...Dommage :-)

> J'ai trouvé sur MSDN (http://msdn.microsoft.com/en-us/library/aa75208 5
> (VS.85).aspx) une liste des événements liés au WebBrowser. Commen t les
> utiliser ??

> Par exemple : DownloadComplete  Fires when a navigation operation
> finishes, is halted, or fails.

> Comment profiter de cet événement avec mon WebBrowser ??

> Toutes explications ou exemples seront les bienvenus car je tourne en
> rond dans la documentation MSDN

> Merci pour vos réponses

> Jacques

Bonjour,

Ben il suffit de s'abonner à l'évènement !
Désolé si je réponds à coté de la question mais j'essaie :o)

Je ne sais pas comment est déclaré votre Webbrowser, je vais prendre
cet exemple :

Private Withevents MyBrowser as WebBrowser

Private Sub WB_Initialization()

   MyBrowser = New WebBrowser
   Addhandler Myrowser.DownloadComplete, Addressof WB_DL_Complete
End Sub

Private Sub WB_DL_Complete
   (...) Code a exécuter lors du déclenchement de l'évènement (...)
End Sub

AlexC.- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Bonjour,


Mon problème est le suivant :

Je charge des pages les unes après les autres mais il arrive parfois
qu'une page prenne trop de temps pour être chargée. J'aimerai qu'aprè s
par exemple 60 secondes, que le WbeBrowser arrête de vouloir charger
la page et passer à la suivante.

Énoncé comme cela à l'air facile mais dans la pratique cela ne
fonctionne pas.
J'utilise l'événement DocumentComplete

Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object,
ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs)
Handles WebBrowser1.DocumentCompleted)


Je lance la navigation : WebBrowser1.Navigate(NouvUrl)

De fait on passe bien par l'événement Documentcomplete mais comment
l'arrêter et ainsi passer à la page suivante ??

Merci


Jacques
Mais sans succès :-(
Jérémy Jeanson
Le #19120971
Bonjour tout le monde,

Voici une solution pour répondre à ton souci :

Private Sub Button1_Clik(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Clik
' Afficher la première page
Me.WebBrowser1.Navigate("http://www.msdn.fr")
Me.Timer1.Interval = 60000
Me.Timer1.Start()
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Timer1.Tick
Me.WebBrowser1.Stop()
'Mettre ici le code pour passer à la page suivante
End Sub

Private Sub WebBrowser1_DocumentCompleted(ByVal sender As
System.Object, ByVal e As
System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles
WebBrowser1.DocumentCompleted
Me.Timer1.Stop()
'Mettre ici le code pour passer à la page suivante
End Sub

Il y a là un bouton sur lequel on click pour atteindre une page, et le
déclenchement d'un timer qui a in interval de 60seconde.
Ensuite il y a deux cas :
- Quand la page a fini de se charger, le timer est interrompu.
- Quand le timer arrive à 60s, la navigation est interrompue.

Ensuite à toi de voir comment tu veux enchainer tes pages ;)
--
Jérémy JEANSON
MCP
http://www.jjeanson.fr
jac_be
Le #19121031
Bonjour Jérémy,

Je m'attaque à cela de suite !! :-)


Merci

PS: je reviendrai te dire comment cela se passe :-)
jac_be
Le #19121841
On 15 avr, 12:05, wrote:
Bonjour Jérémy,

Je m'attaque à cela de suite !! :-)

Merci

PS: je reviendrai te dire comment cela se passe :-)



Re bonjour,

Ben , ça se passe pas bien ... :-(

Pourquoi ... : parce que Private Sub WebBrowser1_DocumentCompleted est
appelée après le Navigate et donc arrête le Timer de suite .

Cela fait quelques jours pour ne pas dire deux semaines que je cherche
la bonne façon de faire pour appeler la page suivante après un délai
de 60 secondes.

J'ai juste l'impression de tourner en rond. J'essaie d'une autre
manière mais je reviens toujours avec le même problème !! :-)

Merci quand même pour cet essai.

Jacques
Jérémy Jeanson
Le #19124041
Bonjour Jacques,

On peut reprendre ton histoire depuis le début stp? et tes contraintes...
- Tu as une liste de pages à parcourir.
- Quand une page est chargée tu dois faire un traitement particulier.
- Tu ne dois pas passer plus de 60seconde pour charger une page.
C'est bien ça ?

Si oui j'ai peut être une solution simple ;)

On utilise une liste d'url à parcourir (ou autre chose si tu utilise
autre chose. + un index pour parcourir tes url

Voici mes déclaration (tu change la table par ce que tu veux:

Private urls As Strin()
private indexUrl As Int32


Private Sub InitTraitement()
' init de l'index et du reste
indexUrl = 0
Me.Timer1.Interval = 60000

' Peut être une initialisation d'autres chose , àtoi de voir en
fonction de tes besoins
End Sub


Private Sub ParcourirPages()
If indexUrl.Length > indexUrl Then
Me.WebBrowser1.Navigate(ursl(indexUrl))
Me.Timer1.Start()
indexUrl++
End If
End Sub


Private Sub FaireTraitement()
' Là je ne sais pas ce que tu veux faire quand une page est affichée,
donc s'est à toi de jouer

' Puis passer à la page suivante
Me.ParcourirPages()
End Sub


Private Sub Button1_Clik(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Clik
' Init du traitemetn
Me.InitTraitement()
' Afficher la première page
Me.ParcourirPages()
End Sub


Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Timer1.Tick
Me.WebBrowser1.Stop()
'Mettre ici le code pour passer à la page suivante
Me.ParcourirPages()
End Sub


Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object,
ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs)
Handles WebBrowser1.DocumentCompleted
Me.Timer1.Stop()
' Faire ton traitement
Me.FaireTraitement()
End Sub


Voila, bon il n'y a pas là de traitement Multi-thread et autres
joyeusetés du genre, mais vu tes contraintes je penses que ce n'est peut
être pas utile de compliquer les choses dans un premier temps. Tu verras
quand tu serras déjà à l'aise avec ça.
--
Jérémy JEANSON
MCP
http://www.jjeanson.fr
Publicité
Poster une réponse
Anonyme