1.独立代码:
//-----------开始---------------------//
#include <atlbase.h>
#include <mshtml.h>
#include <winuser.h>
#include <comdef.h>
#include <string.h>
void EnumIE(void);//处理网页
CComModule _Module;//使用CComDispatchDriver ATL的智能指针,此处必须声明
#include <atlcom.h>
void EnumTableElement(IHTMLDocument2 * pIHTMLDocument2);//获取table内元素
void EnumIE(void)
{
CComPtr<IShellWindows> spShellWin;
HRESULT hr=spShellWin.CoCreateInstance(CLSID_ShellWindows);
if (FAILED(hr))
{
return;
}
long nCount=0; //取得浏览器实例个数(Explorer和IExplorer)
spShellWin->get_Count(&nCount);
if (0==nCount)
{
return;
}
for(int i=0; i<nCount; i++)
{
CComPtr<IDispatch> spDispIE;
hr=spShellWin->Item(CComVariant((long)i), &spDispIE);
if (FAILED(hr)) continue;
CComQIPtr<IWebBrowser2>spBrowser=spDispIE;
if (!spBrowser) continue;
CComPtr<IDispatch> spDispDoc;
hr=spBrowser->get_Document(&spDispDoc);
if (FAILED(hr)) continue;
CComQIPtr<IHTMLDocument2>spDocument2 =spDispDoc;
if (!spDocument2) continue;
//Modify by jncao 2007-09-17
//*******************************************************************************
CString cIEUrl_Filter; //设置的URL(必须是此URL的网站才有效);
cIEUrl_Filter="http://127.0.0.1/iAgent"; //设置过滤的网址
//*******************************************************************************
CComBSTR IEUrl;
spBrowser->get_LocationURL(&IEUrl);
CString cIEUrl_Get; //从机器上取得的HTTP的完整的URL;
cIEUrl_Get=IEUrl;
cIEUrl_Get=cIEUrl_Get.Left(cIEUrl_Filter.GetLength()); //截取前面N位
if (strcmp(cIEUrl_Get,cIEUrl_Filter)==0)
{
// 程序运行到此,已经找到了IHTMLDocument2的接口指针
EnumTableElement(spDocument2);//获取table内元素
}
}
}
void EnumTableElement(IHTMLDocument2 * pIHTMLDocument2)//获取table内元素
{
if (!pIHTMLDocument2) return;
HRESULT hr;
CComQIPtr<IHTMLElementCollection> spAllElement;
hr=pIHTMLDocument2->get_all(&spAllElement);//获取所有网页原色
if (FAILED(hr))return;
long nLength = 0;
spAllElement->get_length (&nLength);
for (int i = 0; i < nLength; i++)
{
CComPtr<IDispatch> pDisp;
hr = spAllElement->item(COleVariant((long)i),COleVariant((long)0),&pDisp); //获取单个元素
if(SUCCEEDED(hr))
{
CComQIPtr <IHTMLTable, &IID_IHTMLTable> pTable(pDisp);//获取元素是table的指针
/*此处就具体pTable进行行、列处理*/
}
}
}
//-----------结束---------------------//
2.执行代码:
void CDemoDlg::OnOK()
{
// TODO: Add extra validation here
::CoInitialize(NULL); //初始化COM
EnumIE(); //枚举浏览器
::CoUninitialize(); //释放COM
//CDialog::OnOK();
}
分享到:
相关推荐
VC获取网页源文件\VC winsock2获取网页源文件
VC获取网页标题.zip
方便的获取网页源代码,对网页的内容进行复制、修改等。
vc++中通过wininet函数获取网页的内容,用途广泛。
vc获取网页中输入的密码和文本输入框的内容.zip
获取网页密码-VC6代码,获取网页密码-VC6代码.
VC获取光驱的CODE号,也可以获取IDE/USB设备的SN号码!
vc获取命令行参数并显示,用于打开系统菜单,调用各种函数,调用方法: 在命令行模式运行 >lx test.txt 1 Hello World! 3 open=test.txt open2=1
可以获取网页源代码,用来修改其源代码,然后你可以重新打开网页.
vc平台MFC实现的vc获取局域网其他计算机IP或计算机名, 完整代码。供参考!
vc 获取本机IP/用户名 vc 获取本机IP/用户名
vc++ mfc 获取网络时间 获取北京时间
vc获取操作系统性能,如CPU使用率.zip
VC获取文件属性信息,本例是一个获取文件属性的例子,获取到文件的创建时间、修改时间、访问时间,以及文件的只读、隐藏、存档等属性,不好一点是选择文件需要手动粘贴文件路径到文本框中,这个你可以自己完善哦,...
VC 获取各个打开网页的标题,把当前正在运行的网页的标题获取得,显示在ListView中,VC6.0源码。
vc获取windows系统的硬件信息.zip
vc获取硬件资源,主要获取cpu信息,BIOS信息
VC获取CPU使用率,在网上找了很多源代码。
VC 获取MAC和IP的代码,同时获得域名、主机名、独立工作域、绑定的Ip地址、默认网关以及DNS等。可将本代码所演示的获取方法应用到其它的VC 开发项目中,挺基础,但属于有必要掌握的内容,测试截图如图所示。 程序...
VC 获取网络配置信息,不错的代码实例。