bibifinal
Messages postés62Date d'inscriptionmardi 8 septembre 2009StatutMembreDernière intervention 3 mars 2010
-
2 mars 2010 à 09:34
bibifinal
Messages postés62Date d'inscriptionmardi 8 septembre 2009StatutMembreDernière intervention 3 mars 2010
-
3 mars 2010 à 17:23
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
bibifinal
Messages postés62Date d'inscriptionmardi 8 septembre 2009StatutMembreDernière intervention 3 mars 2010 2 mars 2010 à 13:06
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
bibifinal
Messages postés62Date d'inscriptionmardi 8 septembre 2009StatutMembreDernière intervention 3 mars 2010 2 mars 2010 à 13:09
(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
bibifinal
Messages postés62Date d'inscriptionmardi 8 septembre 2009StatutMembreDernière intervention 3 mars 2010 2 mars 2010 à 13:45
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
Vous n’avez pas trouvé la réponse que vous recherchez ?