MFC CWebBrowser2 长时间使用控件加载完成不了

alifensss 2016-01-17 10:38:54
我的程序比较简单 就是刷一下百度的下拉框,就只是用MFC 的CWebBrowser2控件加载百度页面,然后自动在百度搜索框里面填个词,然后自动点击搜索。通过
LPDISPATCH glpDisp = NULL;
void CWebdlgDlg::OnDocumentCompleteExplorer1(LPDISPATCH pDisp, VARIANT FAR* URL)
{
// TODO: Add your control notification handler code here
if (glpDisp && glpDisp == pDisp)
{
b_Complete2Explorer=true;
//网页加载完成
glpDisp = NULL;
}

}

void CWebdlgDlg::OnNavigateComplete2Explorer1(LPDISPATCH pDisp, VARIANT FAR* URL)
{
// TODO: Add your control notification handler code here
if (!glpDisp)
{
b_Complete2Explorer=false;
glpDisp = pDisp;
}
}

b_Complete2Explorer 我自己的成员变量,来判断网页加载完成,加载完成后就填入下一个词,继续搜索!
但是现在碰到一个问题,我这样挂着一段时间之后CWebBrowser2就没响应了,所谓的没响应有以下几点。

1、搜索后页面加载完成不了 b_Complete2Explorer 一直为false
2、我自己设置了一个超时时间大概是13秒,如果加载不完成,我就重新
m_web.Navigate("http://www.baidu.com",NULL,NULL,NULL,NULL); 但是这样还是不行,仍然连百度首页都不能重新加载完成
3、我自己尝试了下如果出现加载不完成的现象时,我停止程序,手动用键盘在控件的百度搜索框里输入文字,然后手动点击控件上的搜索,仍然不行,控件没有响应。

真的不知道什么情况,开发环境为VC6.0 MFC!分不多,但是搞定了的话 一定补上。
...全文
390 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
alifensss 2016-01-20
  • 打赏
  • 举报
回复
引用 2 楼 jiangsheng 的回复:
谷歌你这么干一段时间之后就会要你输验证码证明不是机器人……百度不知道有没有这样的保护。
额,我有自动通过ADSL拨号换IP的机制,也会被发现是机器人么?之前那个原因还是没查出来,不过我加了个碰到异常就重启的机制,暂时解决了,用了SetErrorMode(SEM_FAILCRITICALERRORS|SEM_NOGPFAULTERRORBOX); 屏蔽系统错误框,和SetUnhandledExceptionFilter 设置错误回调函数来判断异常。出现了就重启程序。还是谢谢您了。^_^
蒋晟 2016-01-18
  • 打赏
  • 举报
回复
谷歌你这么干一段时间之后就会要你输验证码证明不是机器人……百度不知道有没有这样的保护。
alifensss 2016-01-17
  • 打赏
  • 举报
回复
补充一下,程序重启了就好了,但是跑一段时间后又出现同样的问题!

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧