[VB.NET] WebBrowser et DocumentText

Résolu
allthew3 Messages postés 551 Date d'inscription samedi 8 janvier 2005 Statut Membre Dernière intervention 12 avril 2008 - 9 févr. 2008 à 17:23
allthew3 Messages postés 551 Date d'inscription samedi 8 janvier 2005 Statut Membre Dernière intervention 12 avril 2008 - 11 févr. 2008 à 13:48
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

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
11 févr. 2008 à 12:06
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
3
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
11 févr. 2008 à 11:37
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
0
allthew3 Messages postés 551 Date d'inscription samedi 8 janvier 2005 Statut Membre Dernière intervention 12 avril 2008 2
11 févr. 2008 à 11:39
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
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
11 févr. 2008 à 11:43
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
allthew3 Messages postés 551 Date d'inscription samedi 8 janvier 2005 Statut Membre Dernière intervention 12 avril 2008 2
11 févr. 2008 à 11:48
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
0
allthew3 Messages postés 551 Date d'inscription samedi 8 janvier 2005 Statut Membre Dernière intervention 12 avril 2008 2
11 févr. 2008 à 12:51
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
0
allthew3 Messages postés 551 Date d'inscription samedi 8 janvier 2005 Statut Membre Dernière intervention 12 avril 2008 2
11 févr. 2008 à 13:48
C'est bon ça marche parfaitement

Merci à toi NHenry
0
Rejoignez-nous