请教vc中用cwebBrowser2控件实现网页模拟点击的问题
1个回答
展开全部
如果只是要实现点击下按钮的话应该可以
你可以遍历所有控件,然后判断是INPUT,判断是BUTTON类型,然后判断ID(通过网站源代码看)是不是这个按钮的,然后就check()就可以了。
C/C++ code
MSHTML::IHTMLElementCollection *objAllElement=NULL;
MSHTML::IHTMLDocument2 *objDocument=NULL;
CString strUrl,strTemp;
strUrl=m_ctrlWeb.GetLocationURL();//得到当前网页的URL
if(strUrl.IsEmpty())
return;
objDocument=(MSHTML::IHTMLDocument2 *)m_ctrlWeb.GetDocument(); //由控件得到IHTMLDocument2接口指针
objDocument->get_all(&objAllElement); //得到网页所有元素的集合
//由于所有页面下载完后都会执行这个函数,所以必须根据URL判断消息来源网页
if(strUrl=="http://reg.email.163.com/mailregAll/reg0.jsp?from=163mail_right" )
{
CComPtr<IDispatch>pDisp;
long lcount = 0;
objAllElement->get_length(&lcount);
for(int i=0;i<lcount;i++)
{
_variant_t index;
index.vt=VT_I4;
index.intVal=i;
IDispatchPtr disp;
disp=objAllElement->item(index,index);
if(disp==NULL)
continue;
else
{
MSHTML::IHTMLInputElementPtr pInput(disp);
if(pInput)
{
BSTR bstrtype;
pInput->get_type(&bstrtype);
//printf(_bstr_t(bstrtype));
if(StrCmpW(bstrtype,L"button")==0)
{
MSHTML:ispHTMLButtonElementPtr pElement(disp);
// pElement=pDisp;
if(pElement)
{
_bstr_t strname=pElement->GetclassName();//>onclick;
if(StrCmpW(strname,L"百度一下")==0)
{
pElement->click();
}
}
}
SysFreeString(bstrtype);
}
}
}
objAllElement->Release();
}
你可以遍历所有控件,然后判断是INPUT,判断是BUTTON类型,然后判断ID(通过网站源代码看)是不是这个按钮的,然后就check()就可以了。
C/C++ code
MSHTML::IHTMLElementCollection *objAllElement=NULL;
MSHTML::IHTMLDocument2 *objDocument=NULL;
CString strUrl,strTemp;
strUrl=m_ctrlWeb.GetLocationURL();//得到当前网页的URL
if(strUrl.IsEmpty())
return;
objDocument=(MSHTML::IHTMLDocument2 *)m_ctrlWeb.GetDocument(); //由控件得到IHTMLDocument2接口指针
objDocument->get_all(&objAllElement); //得到网页所有元素的集合
//由于所有页面下载完后都会执行这个函数,所以必须根据URL判断消息来源网页
if(strUrl=="http://reg.email.163.com/mailregAll/reg0.jsp?from=163mail_right" )
{
CComPtr<IDispatch>pDisp;
long lcount = 0;
objAllElement->get_length(&lcount);
for(int i=0;i<lcount;i++)
{
_variant_t index;
index.vt=VT_I4;
index.intVal=i;
IDispatchPtr disp;
disp=objAllElement->item(index,index);
if(disp==NULL)
continue;
else
{
MSHTML::IHTMLInputElementPtr pInput(disp);
if(pInput)
{
BSTR bstrtype;
pInput->get_type(&bstrtype);
//printf(_bstr_t(bstrtype));
if(StrCmpW(bstrtype,L"button")==0)
{
MSHTML:ispHTMLButtonElementPtr pElement(disp);
// pElement=pDisp;
if(pElement)
{
_bstr_t strname=pElement->GetclassName();//>onclick;
if(StrCmpW(strname,L"百度一下")==0)
{
pElement->click();
}
}
}
SysFreeString(bstrtype);
}
}
}
objAllElement->Release();
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询