如何使用WebBrowser获得一个网页的内容?

招RD和QA 2007-03-01 05:33:41
代码如下:

CComPtr< IWebBrowser2 > spWB2;
//spWB2.CoCreateInstance( CLSID_InternetExplorer );
spWB2.CoCreateInstance( CLSID_WebBrowser );

CComVariant flag;
CComVariant empty;

CComBSTR url;
spWB2->Navigate( url, &flag, &empty, &empty, &empty );

while( !IsDocumentReady( spWB2.p ) )
Sleep( 500 );

CComPtr< IDispatch > spDisp;
spWB2->get_Document( &spDisp );

如果使用CLSID_InternetExplorer,可以获得网页,
但如果使用CLSID_WebBrowser,就不行了,有没有方法使用WebBrowser,而不是IE?
...全文
572 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
招RD和QA 2007-03-02
  • 打赏
  • 举报
回复
那为什么使用CLSID_InternetExplorer就可以了,当使用CLSID_WebBrowser的时候,
while( !IsDocumentReady( spWB2.p ) )
Sleep( 500 );

总是在执行,等了很久也不会退出。
wildmen 2007-03-02
  • 打赏
  • 举报
回复
可能是没有下载完你就执行 get_Documents()了,所以取的是空指针。
while( !IsDocumentReady( spWB2.p ) )
Sleep( 500 );
-------------
去掉这个。

CComPtr< IDispatch > spDisp;
spWB2->get_Document( &spDisp );
---------------------------------
把这段的功能放在OnDocumentComplete事件中。
allenshi_szl 2007-03-01
  • 打赏
  • 举报
回复
可以考虑用DIID_DWebBrowserEvents2实现

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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