这是关于获取当IE所打开的URL地址(VC++),并且自动打印出相应的网址源代码内容:
//将这个放入你的头文件stdafx.h中
#import <mshtml.tlb>
#import <shdocvw.dll>
void CGetIESrcDlg::GetRunningIESrc()
{
SHDocVw::IShellWindowsPtr m_spSHWinds;
CoInitialize(NULL);
if(m_spSHWinds.CreateInstance(__uuidof(SHDocVw::ShellWindows)) == S_OK)
{
IDispatchPtr spDisp;
long nCount = m_spSHWinds->GetCount();
for (long i = 0; i < nCount; i++)
{
_variant_t va(i, VT_I4);
spDisp = m_spSHWinds->Item(va);
SHDocVw::IWebBrowser2Ptr spBrowser(spDisp);
if (spBrowser != NULL)
{
IDispatchPtr spDisp;
if(spBrowser->get_Document(&spDisp) == S_OK && spDisp!= 0 )
{
MSHTML::IHTMLDocument2Ptr spHtmlDocument(spDisp);
MSHTML::IHTMLElementPtr spHtmlElement;
if(spHtmlDocument==NULL)
continue;
spHtmlDocument->get_body(&spHtmlElement);
if(spHtmlDocument==NULL)
continue;
_bstr_t str ;
str=spBrowser->GetLocationURL();//URL of IE window();
AfxMessageBox(str);
MSHTML::IHTMLDocument3* pHTMLDoc3;
HRESULT hr = spHtmlDocument->QueryInterface(__uuidof(MSHTML::IHTMLDocument3),(LPVOID*)&pHTMLDoc3);
ASSERT(SUCCEEDED(hr));
MSHTML::IHTMLElement* pDocElem;
hr = pHTMLDoc3->get_documentElement(&pDocElem);
pHTMLDoc3->Release();
ASSERT(SUCCEEDED(hr));
BSTR bstrHTML;
pDocElem->get_outerHTML(&bstrHTML);
pDocElem->Release();
AfxMessageBox(CString(bstrHTML));
SysFreeString(bstrHTML);
}
break;
}
}
}
else {
AfxMessageBox("Shell Windows interface is not avilable");
}
CoUninitialize();
}
说明:简单遍历了整个网页的所有节点,找出容器当中的第一个页面(多个IE页面的第一页),然后进行遍历取出所有子节点并打印。大家可以测试一下,因为有时候网页过大会出现假死现象,这段代码本工作室测试的时候,可以使用,但用到IE7,IE8这样多标签页的浏览器里要查到每一标签页的内容可能还需要改动一下,有兴趣的朋友自己试试吧!
本文源自:http://www.sse6.cn 转载请注明。
相关推荐
vc++ 获取当前路径 vc++ 获取当前路径
VC++游戏源代码VC++游戏源代码VC++游戏源代码VC++游戏源代码VC++游戏源代码VC++游戏源代码VC++游戏源代码VC++游戏源代码
VC++源代码VC++源代码VC++源代码VC++源代码VC++源代码VC++源代码
VC++ 获取网页源代码
VC++ 获取网页源代码
VC++抓取远程文件(URL网页的源代码) 这是一个通过inet来获取网页内容的程序,远程获取文件内容,实际上是通过URL地址来得到指定地址下某文档的源代码,如截图示,一看便知,不过如果是一些文本类型的文件,也是能...
VC++推箱子及源代码 VC++推箱子及源代码 VC++推箱子及源代码 VC++推箱子及源代码 VC++推箱子及源代码 VC++推箱子及源代码 VC++推箱子及源代码
vc++游戏源代码 第2章 扫雷vc++游戏源代码 第2章 扫雷vc++游戏源代码 第2章 扫雷vc++游戏源代码 第2章 扫雷vc++游戏源代码 第2章 扫雷vc++游戏源代码 第2章 扫雷vc++游戏源代码 第2章 扫雷vc++游戏源代码 第2章 扫雷...
为了评职称,写了篇论文[最短路径Floyd算法具体演示],并且发表在自己的博客中[http://blog.csdn.net/vinglemar/article/details/43414439],多少年过去了,仍然有网友写信索取源代码,为此,我把它分享一下.
该资源为VC++获取当前路径的几个函数介绍以及对比,非常有用
VC++贪吃蛇源代码,适合VC++初学者
VC++围棋源代码VC++围棋源代码VC++围棋源代码
VC++计算器源代码
这是一个用VC++编写的斗地主源代码实例
频域滤波 vc++ 源代码
计算源代码行数源代码VC++,用于计算VC文件中代码行数。VC写的。
vc++游戏源代码 第6章 拼图vc++游戏源代码 第6章 拼图vc++游戏源代码 第6章 拼图vc++游戏源代码 第6章 拼图vc++游戏源代码 第6章 拼图vc++游戏源代码 第6章 拼图vc++游戏源代码 第6章 拼图vc++游戏源代码 第6章 拼图...
VC++ 最短路径 VC++ 最短路径 VC++ 最短路径 VC++ 最短路径 VC++ 最短路径 VC++ 最短路径
解析路径信息,vc++.net的源代码 解析路径信息,vc++.net的源代码