Plantage du programme !

Signaler
Messages postés
21
Date d'inscription
mardi 25 janvier 2005
Statut
Membre
Dernière intervention
14 décembre 2012
-
Messages postés
21
Date d'inscription
mardi 25 janvier 2005
Statut
Membre
Dernière intervention
14 décembre 2012
-
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

Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
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
Messages postés
21
Date d'inscription
mardi 25 janvier 2005
Statut
Membre
Dernière intervention
14 décembre 2012

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 ;-)
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
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
Messages postés
21
Date d'inscription
mardi 25 janvier 2005
Statut
Membre
Dernière intervention
14 décembre 2012

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 :-)
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
une erreur, non, pas indispensable...

j'utiliserais un HttpRequest

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
21
Date d'inscription
mardi 25 janvier 2005
Statut
Membre
Dernière intervention
14 décembre 2012

bon ok pourquoi j'vais tester ! tu n'aurais pas un tuto ou un site qui explique comment utilisé httprequest je ne connais !

merci :-)
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
c'est XMLHttpRequest, pardon (possible aussi via les APIs INET)

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
21
Date d'inscription
mardi 25 janvier 2005
Statut
Membre
Dernière intervention
14 décembre 2012

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 :-/
Messages postés
580
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
20 avril 2010
3
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 
Messages postés
21
Date d'inscription
mardi 25 janvier 2005
Statut
Membre
Dernière intervention
14 décembre 2012

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 ....
Messages postés
21
Date d'inscription
mardi 25 janvier 2005
Statut
Membre
Dernière intervention
14 décembre 2012

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