请教vc中用cwebBrowser2控件实现网页模拟点击的问题

2025-04-07 11:47:47
推荐回答(1个)
回答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" )

{

CComPtrpDisp;

long lcount = 0;

objAllElement->get_length(&lcount);

for(int i=0;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();

}