首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

关于在WebBrowser2中自动点击链接的有关问题

2012-03-02 
关于在WebBrowser2中自动点击链接的问题。void*CTester::OpenLink(longnIndex){IHTMLDocument2*pDocNULLI

关于在WebBrowser2中自动点击链接的问题。
void*
CTester::OpenLink(
long   nIndex
)
{
IHTMLDocument2*pDoc=   NULL;
IHTMLElement*pItem=   NULL;
IHTMLElement*pBody=   NULL;
IHTMLElementCollection*pEC=   NULL;
IDispatch*pDisp=   NULL;

pDoc   =   GetDocument();

if   (   pDoc   ==   NULL   )
return   NULL;

pDoc-> get_body(   &pBody   );
pDoc-> Release();

if   (   pBody   ==   NULL   )
return   NULL;

pBody-> get_all(   &pDisp   );
pBody-> Release();

if   (   pDisp   ==   NULL   )
return   NULL;

pDisp-> QueryInterface(   __uuidof(   IHTMLElementCollection   ),   (   void**   )&pEC   );
pDisp-> Release();

if   (   pEC   ==   NULL   )
return   NULL;

pEC-> item(   _variant_t(   nIndex   ),   _variant_t(   nIndex   ),   &pDisp   );
pEC-> Release();

if   (   pDisp   ==   NULL   )
return   NULL;

pDisp-> QueryInterface(   __uuidof(   IHTMLElement   ),   (   void**   )   &pItem   );
pDisp-> Release();

if   (   pItem   ==   NULL   )
return   NULL;

pItem-> click();     /////////这句时发生异常
pItem-> Release();

return   NULL;
}

[解决办法]
看看pItem的属性是不是你要的对象
[解决办法]
改成
<A class=a01 href= "javascript:turnpage( '2 ') "> 下一页 </A> 试试
[解决办法]
USES_CONVERSION ;
IHTMLElementCollection *pAnchors = NULL;
long ilHrefCount = 0;
if(SUCCEEDED(pElemColl-> get_length(&ilHrefCount)))
{
long ilHrefIndex = 0;
for(ilHrefIndex = 0; ilHrefIndex < ilHrefCount; ilHrefIndex++)
{
_variant_t vIndex;
vIndex.vt = VT_I4;
vIndex.lVal = ilHrefIndex;

IDispatch *pItem = NULL;
pElemColl-> item(vIndex, vIndex, &pItem);
if(pItem != NULL)
{
IHTMLAnchorElement *pAnchor = NULL;
if(SUCCEEDED(pItem-> QueryInterface(IID_IHTMLAnchorElement,
(LPVOID*)&pAnchor)))
{

BSTR bURL;
if( SUCCEEDED(pAnchor-> get_href(&bURL)))
{
string s = W2A(bURL);
if(s.find(url) != -1)
{
IHTMLElement * pElement = 0;
if(SUCCEEDED(pItem-> QueryInterface(IID_IHTMLElement,
(LPVOID*)&pElement)))
{
pElement-> click();
pElement-> Release();
}
}
}


pAnchor-> Release();
}
pItem-> Release();
}
}
}

[解决办法]
把你挣的钱分点我,赫赫。
[解决办法]
我和你做一样的事情,不过我已经解决了。
跨线程调用是有这个问题。

热点排行