关于VB使用webbrowser控件的资源释放问题
写了一个程序在自动查询网站的信息,网站会经常弹出各种窗口,没什么精力去研究屏蔽
在得到我想要的结果时弹出了很多窗口,不过我没有去管它,运行一两个小时还是可以的
目前的大问题是程序运行了几个小时后就完全死掉了,经常导致系统都死机了。。。。
我怀疑是这些弹出的窗口让控件崩溃了,几个小时可能弹出几万个窗口了
有没有方法可以实时释放这些资源呢,或者让它不要崩溃,让系统不要崩溃
如果实在没办法我就研究研究屏蔽窗口了,这种帖子很多,但是对我的帮助不大,没什么屏蔽效果。
人人有分,欢迎提出见解
[解决办法]
你只是做自动查询网站,应该可以关掉脚本支持的吧:)
[解决办法]
WebBrowser本身有内存泄露问题...没办法...
写自动查询完全可以扔掉WB,太占内存,XMLHTTP好用得多...
[解决办法]
先设置Me.WebBrowser1.Silent = True
然后
Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)
Cancel = True
End Sub
[解决办法]
把弹出的网址.加在IE中的受限网站中..
[解决办法]
用XMLHTTP多好
又快又省劲
[解决办法]
弹出窗口大致有两类:
1、会响应WebBrowser1_NewWindow2。此类Cancel = True即可。
2、用脚本弹出窗口。
我就奇怪,楼主说Cancel = True还是弹出窗口,弹出窗口在什么程序中打开的?如果是用默认浏览器(如IE)打开的,那么消耗系统资源是没错,却不是WebBrowser消耗内存所致,如果真是这样,那么定时检测IE进程,发现就关闭之。如果在自己程序中打开新窗口,那必然是响应了WebBrowser1_NewWindow2的。
至于屏蔽弹窗,用INewWindowManager接口的EvaluateNewWindow方法处理。
[解决办法]
楼上已经有几位说用XMLHTTP了。
做事首先要看对象,因物而宜。一开始就应该选择XMLHTTP,而不是WB。