Plantage du programme !

jminter Messages postés 21 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 14 décembre 2012 - 5 déc. 2009 à 23:37
jminter Messages postés 21 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 14 décembre 2012 - 7 déc. 2009 à 13:28
Bonjour a tous ! Voici mon probléme j'ai crée une application qui tourne en boucle infini avec un webbrowser pour aller chercher des infos sur un site en temp réel !


Do
WebBrowser1.Navigate "http://www"

Do
DoEvents
Loop While WebBrowser1.Busy

'traitement de la page pour récupéré les infos

Loop While 1 = 1

Le programme donne exactement le résultat voulu vous allez me dire c'est quoi ton probléme ! en fait il monte en mémoire vive sans cesse ! petite a petit ! j'arrive pas a le rendre stable au bout d'un moment il plante :S
Je pense que le webbrowser et la l'origine de ca d'après mes teste peut etre le cache ou je ne sais pas ! si vous avez une idée je vous écoute ;-)

Merci d'avance ! :-)

11 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
5 déc. 2009 à 23:53
Loop While 1 = 1

Loop suffit...

utilises plutot un Timer, ca soulagera ton poste.

Loop While WebBrowser1.Busy
utilises plutot le Readystate (attendre READYSTATE_COMPLETE)

enfin, pas forcement utile de jouer avec un webbrowser (il charge javascript, images, etc.) a voir selon le traitement a effectuer, bien sur

Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
jminter Messages postés 21 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 14 décembre 2012
6 déc. 2009 à 00:00
Exact pour le loop uniquement ;-)
Pour le loop While webbrowser.busy je teste avec WebBrowser1.ReadyState = READYSTATE_COMPLETE
par contre je dois garder le webbrowser pour la simulation de click !
par contre le timer tu pense qu'il vas vraiment soulager et a combien il faudrait que je le mette ?

Merci pour ton aide ;-)
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 déc. 2009 à 07:42
simulation du click, c'est pas une excuse... on peux se contenter de bien dialoguer avec le serveur...

que fais tu exactement pendant ce traitement ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
jminter Messages postés 21 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 14 décembre 2012
6 déc. 2009 à 09:20
En fait il se connecte au site il envoi pass et login et submit !
ensuite il récupère le code html de la page chargé pour récupère mes infos !
et il simule un click sur un Onclick ! voila en gros !

tu pense vraiment que l'utilisation d'un webbrowser est une erreur ?

encore merci pour ton aide :-)
0

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

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 déc. 2009 à 10:13
une erreur, non, pas indispensable...

j'utiliserais un HttpRequest

Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
jminter Messages postés 21 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 14 décembre 2012
6 déc. 2009 à 13:31
bon ok pourquoi j'vais tester ! tu n'aurais pas un tuto ou un site qui explique comment utilisé httprequest je ne connais !

merci :-)
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 déc. 2009 à 14:22
c'est XMLHttpRequest, pardon (possible aussi via les APIs INET)

Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
jminter Messages postés 21 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 14 décembre 2012
7 déc. 2009 à 09:06
Tu n'aurais pas un tuto la dessus "XMLHttpRequest" ou "INET"?

sinon j'ai touvé une solution "A l'arrache" lol
j'ai coupé mon prog en 2 ! un prog ce connecte au site récupère les infos brut et ce coupe ! et un autre traite les informations ! le premier est lancer par le second ! comme c'est le webbrowser qui pause probléme la mémoire est bien vidé a chaque fois ! Donc c'est génial ! Mais bon c'était trop simple j'ai un autre probléme maintenant lol les 2 prog quand il se lance utilise chaqu'un 50 % du cpu quasiment :SSSSSS un total de 95 % environ voir 100 % ..... ! un truc de fou pour une boucle de Me....de! lol
ta une idée ?

Changer de langage je crois :-/
0
Claiyah Messages postés 580 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 20 avril 2010 3
7 déc. 2009 à 11:33
bonjour

'exécuter un lien
WebBrowser1.Navigate "http://www" 
'attendre que la page soit charger
  Do While WebBrowser1.ReadyState <> 4
        DoEvents
        Loop
'traitement à faire après que la page soit charger 
0
jminter Messages postés 21 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 14 décembre 2012
7 déc. 2009 à 13:04
Merci Claiyah ! malheureusement ca ne change pas la mémoire ne fais que monter ! on dirait qu'il garde en cache tout ce que l'explorer webbrowser affiche donc la mémoire monte a l'infini comme je suis dans une boucle infini !

Y'as forcément quelque chose pour soulager la mémoire ....
0
jminter Messages postés 21 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 14 décembre 2012
7 déc. 2009 à 13:28
j'ai fais un ptit teste qui pour moi prouve qu'il me manque un élément ! j'ai j'ai crée une boucle simple avec un webbrowser qui ouvre plusieurs pages différence en bouclé 4 fois a la fin de la boucle la mémoire n'as pas descendu j'ai relancer la boucle et la mémoire a encore augmenter !

deuxième teste j'ais mis un webbroser sans boucle et j'ai surfé normalement sur le net et la mémoire se comporte normalement !

Je ne c'est plus trop quoi penser !
Encore merci a tous pour votre aide j'ai toujours des probléme bizar moi lol
0
Rejoignez-nous