找回密码
 加入
搜索
查看: 3739|回复: 3

[IE类操作] [已解决]au3的IE对象内存占用的问题

[复制链接]
发表于 2014-4-2 16:26:30 | 显示全部楼层 |阅读模式
本帖最后由 cxlater 于 2014-4-3 09:57 编辑


Func query()
        $searchkey = GUICtrlRead($Input2)
        If $searchkey = "" Then Return
        Do
                _IELoadWait($oIE)
                $htmlcode = _IEDocReadHTML($oIE)
                If StringInStr($htmlcode , $searchkey) Then
                        $ask = MsgBox(4,0,"当前页面发现特征码,是否继续?")
                        If $ask <> 6 Then Return
                EndIf
                If Not _IELinkClickByText($oIE , "下一页") Then
                        MsgBox(0,0,"已经到最后一页!")
                        Return
                EndIf
        Until 0
        
EndFunc




本段代码实现在_IECreateEmbedded创建的浏览器对象里打开某网页,判断页面代码是否包含特定关键字,并不断点击下一页进行查找。
实际应用中,随着查找页数的增多  进程所占用的内存高的吓人 70页过后占了近两G
请问各位大神什么地方出了问题




附可运行测试代码(无退出功能  需Break it):


#NoTrayIcon
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <IE.au3> 

$Form1 = GUICreate("Form1", 1488, 576, 192, 114)
$Button2 = GUICtrlCreateButton("从当前页面开始匹配", 936, 16, 131, 25)

$oIE = _IECreateEmbedded()
$objie = GUICtrlCreateObj($oIE, 8, 48, 1470, 521)
GUISetState(@SW_SHOW)
_IENavigate($oIE ,"http://s.taobao.com/search?initiative_id=staobaoz_20140402&js=1&q=%D0%C2%BF%EE+%C5%AE%D7%B0&stats_click=search_radio_all%3A1")


While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $Button2
                        que()


        EndSwitch
WEnd




Func que()
        $searchkey = "Test"

        Do
                _IELoadWait($oIE)
                $htmlcode = _IEDocReadHTML($oIE)
                If StringInStr($htmlcode , $searchkey) Then
                        $ask = MsgBox(4,0,"当前页面发现特征码,是否继续?")
                        If $ask <> 6 Then Return
                EndIf
                If Not _IELinkClickByText($oIE , "下一页") Then
                        MsgBox(0,0,"已经到最后一页!")
                        Return
                EndIf
        Until 0
        
EndFunc

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2014-4-3 09:55:25 | 显示全部楼层
是IE的问题   已经测试了   用论坛里内存释放的函数可以释放iecreate的ie进程内存   结贴吧
发表于 2014-5-2 15:33:25 | 显示全部楼层
没明白....
发表于 2014-5-2 15:36:14 | 显示全部楼层
这个也太夸张了吧,居然有这么大。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-30 02:20 , Processed in 0.078012 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表