CHtmlView加载Html字符串,模拟点击 IHTMLElement click 异常的问题

XNightSky 2011-06-02 04:01:02
本人对com不懂。
主要实现个功能是这样的

用Wininet 去登陆 网站, 然后读取到某个网页,有一些很繁琐的JS计算,我想用CHtmlView读取HTML字符串,然后模拟点击某个radio按钮 触发 onclick时间 做表单元素的计算,然后我把计算后的html文本还原成字符串,再截取被改变的表单元素。。

CHtmlView读取HTML字符串,我是把html字符串保存为本地文件tempHtml.html(IPersistStream接口不会用)
然后this->Navigate2(m_viewPath);读取出来
这没问题。。


CString temp;
this->GetSource(temp);
//temp能正常读取到HTML文本
HRESULT hr = NULL;

CComQIPtr<IHTMLDocument2,&IID_IHTMLDocument2> pDoc2(GetHtmlDocument());
if(!pDoc2)
{
return;
}
CComQIPtr<IHTMLDocument3,&IID_IHTMLDocument3> pDoc3(pDoc2);
if(!pDoc3)
{
pDoc2.Release();
return;
}
CComQIPtr<IHTMLElementCollection> pDisCol;
hr = pDoc3->getElementsByName(elementName.AllocSysString(),&pDisCol);
long nameCount;
pDisCol->get_length(&nameCount);
if(!SUCCEEDED(hr) || nameCount<0)
{
pDoc3.Release();
pDoc2.Release();
return;
}
else
{
CComVariant varName(0);
varName.ChangeType(VT_UINT);
CComVariant varIndex;
CComPtr<IDispatch> pTagetDisp;
hr = pDisCol->item(varName,varIndex,&pTagetDisp);
pDisCol.Release();
if(!SUCCEEDED(hr))
return;
CComQIPtr<IHTMLElement> pElem(pTagetDisp);
if(pElem)
{
pElem->click();//异常
}

pElem.Release();
pTagetDisp.Release();
pDoc3.Release();
pDoc2.Release();
return;
}


每次模拟点击都是异常——
0xC0000005: 读取位置 0x0000007c 时发生访问冲突
...全文
453 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
XNightSky 2011-06-03
  • 打赏
  • 举报
回复
我发现,发错板块了。。额,转到HTML/XML去
XNightSky 2011-06-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 oyljerry 的回复:]

hr = pDisCol->item(varName,varIndex,&pTagetDisp);
--- 你还要过滤出submit 按钮来,才能click
[/Quote]

如果要过滤,应该怎么写?
XNightSky 2011-06-02
  • 打赏
  • 举报
回复
额。。我只是点击

<input type="radio" name="se"
value="radiobutton" onclick="ming('A','1','02')">

这样一个按钮,触发一下ming计算方法

elementName= "se"
hr = pDoc3->getElementsByName(elementName.AllocSysString(),&pDisCol);

还需要过滤submit 吗
oyljerry 2011-06-02
  • 打赏
  • 举报
回复
hr = pDisCol->item(varName,varIndex,&pTagetDisp);
--- 你还要过滤出submit 按钮来,才能click

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧