最近写的东西中常常需要嵌入一些浏览器,微软提供了一个比较好的接口,可以在MFC写的程序中嵌入一个简易的浏览器,是以ActiveX插件的形式提供的接口,使用起来也比较的方便,这里我就简单记录下这个插件的使用
这里我用vc6为例吧,我的机器太烂,跑不动vs这种巨人级别的软件。
1.首先创建一个对话框,在对话框上右击插入ActiveX的插件
2.可以看到微软提供了很多ActiveX的插件供我们选择。
3.选中浏览器插件确定后就能看到一个浏览器的ActiveX的插件了,下面我们为他关联一个变量m_test如下图
4.关联好后在确定按钮处填写一个消息响应。
m_test.Navigate("www.baidu.com",NULL,NULL,NULL,NULL);
用这个变量的一个成员函数打开这个网址
关于WebBrowser几个问题
1.关于如何取得这个网页的内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | HRESULT hr; IDispatch* lpDispatch; lpDispatch = m_WebBrower.GetDocument(); IHTMLDocument2* lpDocument2; hr = lpDispatch->QueryInterface(IID_IHTMLDocument2, ( PVOID *)&lpDocument2); if ( hr == S_OK ) { IHTMLElement * pBody; lpDocument2->get_body(&pBody); BSTR html; //存放html源代码 CComBSTR html_t; //用于将BSTR转换为cout可以处理的字符串 pBody->get_innerHTML(&html); CString strCookie(html); CFile myfile( "1.html" ,CFile::modeWrite|CFile::modeCreate); myfile.Write(strCookie,strCookie.GetLength()); myfile.Close(); pBody->Release(); lpDocument2->Release(); } lpDispatch->Release(); |
2.有关于如何取得这个网页的cookie
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | HRESULT hr; IDispatch* lpDispatch; lpDispatch = m_WebBrower.GetDocument(); IHTMLDocument2* lpDocument2; hr = lpDispatch->QueryInterface(IID_IHTMLDocument2, ( PVOID *)&lpDocument2); if ( hr == S_OK ) { hr = lpDocument2->get_cookie(&bstrCookie); if ( hr == S_OK ) { CString strCookie(bstrCookie); CFile myfile( "1.txt" ,CFile::modeWrite|CFile::modeCreate); myfile.Write(strCookie,strCookie.GetLength()); myfile.Close(); //::MessageBox(NULL, strCookie,"当前Cookie", MB_ICONINFORMATION); } lpDocument2->put_cookie(NULL); pBody->Release(); lpDocument2->Release(); } lpDispatch->Release(); |
3.关于一些消息映射
往往我们要等待网页加载完成才能进行一些操作,微软为我们提供了丰富的消息映射,在ClassWizard中可以看到
程序员的基础教程:菜鸟程序员
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
2015-05-25 porwedesigner 去掉引号