IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Utiliser l'objet WebBrowser en boucle


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    chargé de projets
    Inscrit en
    Février 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : chargé de projets
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2016
    Messages : 1
    Par défaut Utiliser l'objet WebBrowser en boucle
    Bonjour,

    J'ai un objet WebBrowser sur mon forumaire nommé Web (très originale). J'ai également un list déroulante contenant plusieures dizaines de code postaux / zip (US). J'ai une boucle que prend les itèmes sélectionnés, construit un url et le passe dans la methode navigate: (voici le bout de c0de)

    For iCount = 0 To lstPC.Items.Count - 1

    If lstPC.GetSelected(iCount) Then
    sSelectedPC = lstPC.Items(iCount).ToString
    sURL = "http://www.zip-codes.com/canadian/postal-code.asp?postalcode=" & sSelectedPC.Replace(Chr(32), "+")
    Web.Navigate(New Uri(sURL))
    While Web.ReadyState <> WebBrowserReadyState.Complete
    Application.DoEvents()
    End While
    End If
    Next

    Dans l'événement DocumentCompleted, je capture la page et recherche l'information que j'ai besoin, en l'occurance la ville.

    Private Sub Web_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles Web.DocumentCompleted
    Dim sHTML As String

    Dim sToFind As String = "<title>"

    sHTML = Web.DocumentText
    If sHTML.IndexOf(sToFind) >= 0 Then
    sCity = sHTML.Substring(sHTML.IndexOf(sToFind), 250)
    sCity = sCity.Substring(sCity.IndexOf(",") + 1).Trim
    sCity = sCity.Substring(0, sCity.IndexOf(",")).Trim
    If Not isItemExist(sSelectedPC & " - " & sCity) Then lstCity.Items.Add(sSelectedPC & " - " & sCity)
    End If

    sCity = ""
    End Sub


    Le problème est que si je sélectionne plus d'un code postal, seul le dernier est traité par l'événement. Je comprend que ma boucle (plus haut) appel probable trop rapidement la méthode navigate, mais je testes pourant avec Web.ReadyState...

    Est-ce que quelqu'un à une idée?

    Merci

  2. #2
    Membre très actif
    Avatar de charouel
    Homme Profil pro
    Freelance
    Inscrit en
    Mars 2009
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 618
    Billets dans le blog
    9
    Par défaut
    Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub FiddlerApplication_AfterSessionComplete(oSession As Fiddler.Session)
    	listBox1.Invoke(New UpdateUI(Function() 
    	listBox1.Items.Add(oSession.url)
     
    	Dim newThread As System.Threading.Thread
     
    	newThread = New System.Threading.Thread(analyse)
     
    	newThread.Start()
     
    End Function))
    End Sub

  3. #3
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Salut,

    je n'ai pas de réponse pour ton problème mais plutôt une question/piste de dev :
    si ton objectif est de sniffer des pages web, ne suffirait-il pas de faire des HttpWebRequest et parser le HTML plutôt que de s'encombrer avec un WebBrowser ?

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Bonjour,
    Un WebBrowser n'est pas vraiment adapté pour ce type d'utilisation. Regardez plutôt du coté de la classe WebClient et de sa méthode DownloadString (qui est synchrone).

    [Edit] (ok jopopmk a répondu entre temps)

Discussions similaires

  1. Réponses: 9
    Dernier message: 28/05/2008, 02h06
  2. [delphi 5,6,7] utiliser un objet dans une procédure
    Par wizdom dans le forum Langage
    Réponses: 3
    Dernier message: 27/01/2006, 15h38
  3. [PDO] Utiliser l'Objet de PHP pour gérer sa base de données
    Par Viau dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 25/01/2006, 18h16
  4. Utilisation d'objets pour imprimer
    Par alainvh dans le forum Composants VCL
    Réponses: 3
    Dernier message: 02/12/2004, 10h25
  5. utilisation d'objets ADO pour CMS sur POSTGRESQL7.3.2
    Par turbok dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 10/10/2003, 09h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo