知道了IE浏览器的句柄,怎么获得页面内的HTML内容啊 在我的程序中,获取了IE浏览器的句柄,怎么获得页面内的HTML内容啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 遍历html的信息存入一个ini文件 BOOL SaveFormData(CHtmlView* pView,CString DataFileName,CString SectionName){ IHTMLDocument2* pDoc = NULL; IHTMLElementCollection* pAllElem = NULL; IHTMLElement* pElem = NULL; IHTMLTextAreaElement* pTextArea=NULL; IHTMLSelectElement* pSelect=NULL; IHTMLInputElement* pInput=NULL; BOOL Result=TRUE; pDoc = (IHTMLDocument2*)(pView->GetHtmlDocument()); if(pDoc!=NULL) { pDoc->get_all(&pAllElem); if(pAllElem!=NULL) { long EleCount; pAllElem->get_length(&EleCount); VARIANT vEleName; BSTR bValue; for(int i=0; i { vEleName.vt = VT_I4; vEleName.lVal=i; if(pAllElem->item(vEleName,vEleName,(LPDISPATCH*)&pElem)==S_OK) { if(pElem!=NULL) { pElem->QueryInterface(&pInput); if(pInput!=NULL) { BSTR bType; pInput->get_type(&bType); CString Type(bType); SysFreeString(bType); if(Type=="text" || Type=="hidden") { pInput->get_name(&bValue); CString name(bValue); SysFreeString(bValue); pInput->get_value(&bValue); CString value(bValue); SysFreeString(bValue); WritePrivateProfileString(SectionName,name,value,DataFileName); }//if(Type=="text" else if(Type=="checkbox") { pInput->get_name(&bValue); CString name(bValue); SysFreeString(bValue); VARIANT_BOOL Check; pInput->get_checked(&Check); if(Check) { pInput->get_value(&bValue); CString value(bValue); SysFreeString(bValue); WritePrivateProfileString(SectionName,name,value,DataFileName); } else WritePrivateProfileString(SectionName,name,"0",DataFileName); } pInput->Release(); }//if(pInput!=NULL) pElem->QueryInterface(&pTextArea); if(pTextArea!=NULL) { pTextArea->get_name(&bValue); CString name(bValue); SysFreeString(bValue); pTextArea->get_value(&bValue); CString value(bValue); SysFreeString(bValue); WritePrivateProfileString(SectionName,name,value,DataFileName); pTextArea->Release(); }//if(pTextArea!=NULL) pElem->QueryInterface(&pSelect); if(pSelect!=NULL) { pSelect->get_name(&bValue); CString name(bValue); SysFreeString(bValue); pSelect->get_value(&bValue); CString value(bValue); SysFreeString(bValue); WritePrivateProfileString(SectionName,name,value,DataFileName); pSelect->Release(); }//if(pSelect!=NULL) pElem->Release(); }//if(pElem!=NULL) }//pAllElem->item( }//for pAllElem->Release(); }//if(pAllElem!=NULL) pDoc->Release(); }//if(pDoc!=NULL) return Result;} 回复1楼:这个要利用webbrower控件,我的程序中不用这个控件。 步骤: 1、通过IE句柄得到IHTMLDocument2接口 http://blog.csdn.net/lion_wing/archive/2006/05/26/756105.aspx 2、通过IHTMLDocumnet2得到网页源代码 http://blog.csdn.net/lion_wing/archive/2006/06/02/769742.aspx 把不必须通过浏览器句柄得到IWebBrowser2指针获取IWebBrowser2指针的方法(一)http://blog.csdn.net/tingsking18/archive/2009/09/30/4620065.aspx获取IWebBrowser2指针的方法(二)http://blog.csdn.net/tingsking18/archive/2009/09/30/4620144.aspx 请帮我看看啊高手们,异步链接服务端的问题 文件过滤器 ===========如何将一个.mak文件,转换成.dsw文件呢? 我想用ActiveMovie连续播放多个文件,可目前只能播一个,请高手指点 各位大侠,能不能提供一个类似MSN文件传输的例子(不需要仅能在局域网内传输的例子)? 线程的实时性 怎样将光标设置在文本末尾? DLL文件怎么调试它? 有关注册标的问题 GDI+ 如何把一个图像画成梯形样子? OnTimer是否没有返回而重复执行 在VC++开发的应用程序中,如何得知别人ping我?
BOOL SaveFormData(CHtmlView* pView,CString DataFileName,CString SectionName)
{
IHTMLDocument2* pDoc = NULL;
IHTMLElementCollection* pAllElem = NULL;
IHTMLElement* pElem = NULL;
IHTMLTextAreaElement* pTextArea=NULL;
IHTMLSelectElement* pSelect=NULL;
IHTMLInputElement* pInput=NULL;
BOOL Result=TRUE;
pDoc = (IHTMLDocument2*)(pView->GetHtmlDocument());
if(pDoc!=NULL)
{
pDoc->get_all(&pAllElem);
if(pAllElem!=NULL)
{
long EleCount;
pAllElem->get_length(&EleCount);
VARIANT vEleName;
BSTR bValue;
for(int i=0; i {
vEleName.vt = VT_I4;
vEleName.lVal=i;
if(pAllElem->item(vEleName,vEleName,(LPDISPATCH*)&pElem)==S_OK)
{
if(pElem!=NULL)
{
pElem->QueryInterface(&pInput);
if(pInput!=NULL)
{
BSTR bType;
pInput->get_type(&bType);
CString Type(bType);
SysFreeString(bType);
if(Type=="text" || Type=="hidden")
{
pInput->get_name(&bValue);
CString name(bValue);
SysFreeString(bValue);
pInput->get_value(&bValue);
CString value(bValue);
SysFreeString(bValue);
WritePrivateProfileString(SectionName,name,value,DataFileName);
}//if(Type=="text"
else if(Type=="checkbox")
{
pInput->get_name(&bValue);
CString name(bValue);
SysFreeString(bValue);
VARIANT_BOOL Check;
pInput->get_checked(&Check);
if(Check)
{
pInput->get_value(&bValue);
CString value(bValue);
SysFreeString(bValue);
WritePrivateProfileString(SectionName,name,value,DataFileName);
}
else
WritePrivateProfileString(SectionName,name,"0",DataFileName);
}
pInput->Release();
}//if(pInput!=NULL)
pElem->QueryInterface(&pTextArea);
if(pTextArea!=NULL)
{
pTextArea->get_name(&bValue);
CString name(bValue);
SysFreeString(bValue);
pTextArea->get_value(&bValue);
CString value(bValue);
SysFreeString(bValue);
WritePrivateProfileString(SectionName,name,value,DataFileName);
pTextArea->Release();
}//if(pTextArea!=NULL)
pElem->QueryInterface(&pSelect);
if(pSelect!=NULL)
{
pSelect->get_name(&bValue);
CString name(bValue);
SysFreeString(bValue);
pSelect->get_value(&bValue);
CString value(bValue);
SysFreeString(bValue);
WritePrivateProfileString(SectionName,name,value,DataFileName);
pSelect->Release();
}//if(pSelect!=NULL)
pElem->Release();
}//if(pElem!=NULL)
}//pAllElem->item(
}//for
pAllElem->Release();
}//if(pAllElem!=NULL)
pDoc->Release();
}//if(pDoc!=NULL)
return Result;
}
回复1楼:
这个要利用webbrower控件,我的程序中不用这个控件。
1、通过IE句柄得到IHTMLDocument2接口
http://blog.csdn.net/lion_wing/archive/2006/05/26/756105.aspx
2、通过IHTMLDocumnet2得到网页源代码
http://blog.csdn.net/lion_wing/archive/2006/06/02/769742.aspx
获取IWebBrowser2指针的方法(一)http://blog.csdn.net/tingsking18/archive/2009/09/30/4620065.aspx获取IWebBrowser2指针的方法(二)
http://blog.csdn.net/tingsking18/archive/2009/09/30/4620144.aspx