Probleme instruction bloquée

Signaler
Messages postés
62
Date d'inscription
mardi 8 septembre 2009
Statut
Membre
Dernière intervention
3 mars 2010
-
Messages postés
62
Date d'inscription
mardi 8 septembre 2009
Statut
Membre
Dernière intervention
3 mars 2010
-
bien le bonjour,
je me remet doucement mais surement a vb, et j'ai donc repris sur visual basic express 2008, et je recherche une solution a mon "gros" problème

j'ai une application qui manipule internet explorer, jusqu'à la aucun problème, il va sur le site que je souhaite, il récupère les données, les met dans un doc txt, etc...
mais au bout d'un certain nombre d'enregistrements, mon très cher "Do While IE.Busy Loop" bug

pas d'erreur , rien, juste que vb reste sur le "ie.busy"

j'ai bien sur tenté différentes solutions (compteur dans la boucle, etc), mais le problème étant que meme si il y a une boucle, le code s'arrête tout court, pour faire continuer le programme j'ai du terminer le processus internetexplorer, qui a déclenché une exception gérée et voila

aucune idée si je poste ma question au bon endroit, en espérant qu'une solution existe...

ce que je me disais, est il possible d'allouer un certain temps a l'exécution de l'instruction, genre si au bout de 10s on est tjs dans la boucle, on en sort

merci d'avance

5 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
75
Salut
Ta boucle Do-Loop ne comporte t-elle que les instructions que tu nous a montrées ?
    Do While IE.Busy
    Loop

Essaye d'ajouter un Application.DoEvents au milieu afin de laisser respirer le PC.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
62
Date d'inscription
mardi 8 septembre 2009
Statut
Membre
Dernière intervention
3 mars 2010

hop hop, petite reponse rapide (midi oblige...)

j'ai tenté en effet un application.doEvents (enfin, juste un "doevents" ) en effet
mais au bout de 2000 instructions, rien a faire, tjs un blocage total (et non un bug)sur l'instruction

d'où le fait (si je me souviens tjs, j'ai essayé pas mal de méthodes) qu'en gros ca s'arrêtait avant d'arriver sur le "doevents"

étrange comme bug, dans l'idéal faudrait que je résolve le souci sur IE, sinon je vais tenter le plugin mozila mais bon
Messages postés
62
Date d'inscription
mardi 8 septembre 2009
Statut
Membre
Dernière intervention
3 mars 2010

(je vais mettre 2 ou 3 codes que j'ai tenté, et a chaque fois, vb bloque sur le test de "ie.busy")
et lorsque je termine le processus ca repart, d'ou le fait que je cherche a tester le temps qu'il met pour une instruction, si ca dépasse, je termine le processus
Messages postés
62
Date d'inscription
mardi 8 septembre 2009
Statut
Membre
Dernière intervention
3 mars 2010

voila la version du code que j'utilise, on voit que j'ai essayé pas mal de solutions possibles :(

                            While ie.Busy Or (ie.ReadyState <> tagREADYSTATE.READYSTATE_COMPLETE)
                                'Do While InStr(1, ie.Document.body.innerHTML, "Edit Scenario", 1) = 0
                                ' do nothing
                                timer = timer + 1
                                If timer > 100000 Then
                                    'si la page a buggé, creation d'un nouvel objet ie
                                    ie.Quit()
                                    releaseObject(ie)

                                    procesiekill()

                                    ie = New InternetExplorer
                                    ie.Navigate("blablabla")
                                    ie.Visible = False
                                    timer = 0
                                End If
                            End While
Messages postés
62
Date d'inscription
mardi 8 septembre 2009
Statut
Membre
Dernière intervention
3 mars 2010

petit up, si quelqu'un a des idées , merci d'avance