Page 1 sur 1
[..] Vider la mémoire utilisé par IE
Posté : mar. 22 nov. 2011 19:01
par karime1
bonjours
après quelque recherche sur google:
http://www.autoitscript.fr/forum/viewto ... 17&p=38173
http://www.autoitscript.fr/forum/viewto ... f=3&t=6863
j'ai compris que personne n'a encore trouvé de solution pour la mémoire utilisé par IE
ça c'est le résumé de mon script qui a tout a fait l'air d'être un bot mais qui ne l'ai pas!
Code : Tout sélectionner
$oIE = _IECreateEmbedded()
GUICreate("", 500, 600)
GUICtrlCreateObj($oIE, 0, 0, 500, 600)
While 1
_IENavigate($oIE, "http://www.yahoo.fr"); en réalité je visite un autre site
WEnd
en espérant que depuis la dernière évocation du prob quelqu'un a trouvé une solution.
merci d'avance.
Re: [..] Vider la mémoire utilisé par IE
Posté : mar. 22 nov. 2011 19:08
par jchd
Et faire un gros $oIE = 0 ne donne rien ?
Re: [..] Vider la mémoire utilisé par IE
Posté : mar. 22 nov. 2011 19:38
par sylvanie
j'aurai tenté un _IEQuit, mais en lisant l'aide :
_IEQuit is not allowed with embedded browser objects created with _IECreateEmbedded. The browser processes associated with those objects will close when their parent GUI window is destroyed.
Du coups on vois que les objet IE imbriqués en GUI ne se libère qu'après destruction de la GUI
Re: [..] Vider la mémoire utilisé par IE
Posté : mar. 22 nov. 2011 22:23
par jchd
Bon sang, mais c'est bien sûr ! C'est de l'embedded, donc oui : scratch du GUI et rebelotte depuis la case Départ.
(Le bureau des pleurs, c'est à Redmond)
Re: [..] Vider la mémoire utilisé par IE
Posté : mer. 23 nov. 2011 09:50
par karime1
et bien non!
même si on ajoute ce bout de script, rien ne change:
Code : Tout sélectionner
Dim $oIE, $GUIActiveX
AdlibRegister("MaxRAM",5*60*1000)
Func MaxRAM()
ConsoleWrite(@CRLF&"Reboot IE"&@CRLF)
$oIE = 0
GUIctrlDelete($GUIActiveX)
GUIDelete($Gui)
$oIE = _IECreateEmbedded()
$Gui = GUICreate($Titre, 500, 600, -1, -1, $WS_MINIMIZEBOX + $WS_CAPTION + $WS_POPUP + $WS_SYSMENU + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)
$GUIActiveX = GUICtrlCreateObj($oIE, 0, 0, 500, 600)
EndFunc
Re: [..] Vider la mémoire utilisé par IE
Posté : mer. 23 nov. 2011 10:22
par sylvanie
Normal que ça ne marche pas. Avez vous lu ma précédente réponse ?
Les libérations d'allocation d'objets IE imbriqués en GUI ne se font qu'à la destruction de la GUI.
Le fait de mettre $oIe à 0 va juste affecter $oIe à cette valeur, mais ne va pas désallouer l'objet qui a été créé.
Re: [..] Vider la mémoire utilisé par IE
Posté : mer. 23 nov. 2011 10:26
par jchd
De toute façon, le vrai problème est l'imbrication des entrailles de IE dans l'OS. Même si MicroMachin a été contraint de tracer une frontière pour dissocier en apparence IE et l'OS, faisant de IE un programme presque comme un autre, les objets qu'utilise IE sont en fait d'authentiques morceaux de système.
J'ai bien peur qu'on ne puisse rien faire contre ça au niveau appli AutoIt. Après, j'ai de droit de me tromper, hein.
trancexx a fait un gros boulot en cours de finalisation au niveau de la gestion COM. Je lui poserai la question car elle maîtrise ce domaine comme nul autre maintenant, des fois que...
Re: [..] Vider la mémoire utilisé par IE
Posté : mer. 23 nov. 2011 10:27
par jchd
Le fait de mettre $oIe à 0 va juste affecter $oIe à cette valeur, mais ne va pas désallouer l'objet qui a été créé.
Pour un composant COM normal, si.
Re: [..] Vider la mémoire utilisé par IE
Posté : mer. 23 nov. 2011 14:50
par sylvanie
Oui, mais IE il n'est pas normal. Il est partout dans windows, il nous regarde, et même si on utilise un autre navigateur, il est encore là dans l'explorateur.
Un jour IE lancera Windows, il sera alors un bootloader autonome
ça fait peur hein ?
Bon je vais prendre mes gélules moi, c'est l'heure.

Re: [..] Vider la mémoire utilisé par IE
Posté : mer. 23 nov. 2011 18:17
par karime1
-.-"
bon j'ai trouvé une idée un peu zinzin: le programme se relance lui même!
mais, comment arriver à ce résultat en sachant qu'il doit continuer à travailler sur une variable?
Re: [..] Vider la mémoire utilisé par IE
Posté : mer. 23 nov. 2011 19:00
par Baku
Et stockage du contenu de ta variable dans un fichier externe ?
Re: [..] Vider la mémoire utilisé par IE
Posté : mer. 23 nov. 2011 20:09
par jchd
Si c'est une variable AutoIt, on peut toujours.
Un objet : en règle très générale, non, pour des raisons évidentes à qui a fait un peu de POO.
Re: [..] Vider la mémoire utilisé par IE
Posté : mer. 23 nov. 2011 20:23
par sylvanie
au lieu de redémarrer l'exe il suffit de détruire la gui et de la reconstruire. ça a le même effet, mais on évite un kill + redémarrer une instance d'exécutable
Re: [..] Vider la mémoire utilisé par IE
Posté : mer. 23 nov. 2011 20:55
par karime1
effacer la gui ne resoudra pas le prob j'ai deja essayé guidelete()