[VB.NET] WebBrowser et DocumentText [Résolu]

Signaler
Messages postés
552
Date d'inscription
samedi 8 janvier 2005
Statut
Membre
Dernière intervention
12 avril 2008
-
Messages postés
552
Date d'inscription
samedi 8 janvier 2005
Statut
Membre
Dernière intervention
12 avril 2008
-
Bonjour à tous,

J'ai passé tout l'après-midi dessus mais rien à faire ...

J'aimerais récupérer le texte (le code-source) d'une page web, voici ce que je fait :

Navigateur est un contrôle WebBrowser

Public Function ...()
   ' ...
   Navigateur.Navigate(http://www.google.fr)

   Navigateur.DocumentText
   ' ...
End Function

Cependant, comme vous pouvez le voir le Navigateur n'a pas le temps de charger la page ... j'ai dejà essayer de faire avec l'évenement DocumentCompleted mais je suis obliger de faire attendre ma fonction et j'y arrive pas (je bloque le Thread)

Si quelqu'un pouvait m'aider ça serait vraiment bien

En fait mon problème c'est surtout de ne pas quitter la fonction ... peut-être faut-il séparé les Threads ? comment savoir si le navigateur a fini dans ce cas là ? ...

Merci d'avance
Cordialement.

7 réponses

Messages postés
14676
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
8 juillet 2020
143
Bonjour

Il n'y a pas une classe dans System.Web ou une une classe qui se nommeraus un truc du genre Http* qui ferais le même chose, mais sans le graphique ?

Car ce controle est destiné à êtrte utilisé sur une form, bien que je n'ai pas encore eu à traiter cette problèmatique, je pense qui dans le Framwork il y a moyen de faire cela sans ce controle.

Cela touche aux limites de ma connaissance de ce sujet.

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
Messages postés
14676
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
8 juillet 2020
143
Bonjour

Il n'y a pas une propritété qui aurais un nom du type "IsBusy" ou "IsWorked" ?
Je penses que c'est prévu.

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
Messages postés
552
Date d'inscription
samedi 8 janvier 2005
Statut
Membre
Dernière intervention
12 avril 2008
1
Oui y'a IsBusy mais qu'est-ce que je fait avec ?

Do While Navigateur.IsBusy = true
   Thread.Sleep(100)
Loop

=> ça bloque le thread, y compris le Navigateur (boucle infinie)

Merci d'essayer de m'aider
Messages postés
14676
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
8 juillet 2020
143
Bonjour

Do while Navigateur.IsBusy
    Application.Doevents()
loop

Ca marche ?

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
Messages postés
552
Date d'inscription
samedi 8 janvier 2005
Statut
Membre
Dernière intervention
12 avril 2008
1
Non parce que je suis dans une Class (qui sera compilée en librairie)

Public Class MoteurInternet
   Private Navigateur as New Windows.Forms.WebBrowser
' ...

End Class
Messages postés
552
Date d'inscription
samedi 8 janvier 2005
Statut
Membre
Dernière intervention
12 avril 2008
1
En faisant

Dim Navigateur As New System.Net.WebClient
Navigateur.DownloadString("adresse")

ça a l'air de marcher ... je test en profondeur si les résultats sont toujours identiques ou pas et je te dis ce qui se passe

en tout cas merci, je connaissais pas du tout la classe System.NET
Messages postés
552
Date d'inscription
samedi 8 janvier 2005
Statut
Membre
Dernière intervention
12 avril 2008
1
C'est bon ça marche parfaitement

Merci à toi NHenry