求教,用PostMessage发送鼠标点击到IE不成功

仗剑骑驴 2016-12-27 11:22:48
发送鼠标点击到IE浏览器,点击百度主页的"百度一下"按钮,没反应,请问错误在哪,代码如下:
"Internet Explorer_Server"的句柄SrvWnd;
BSTR bs=_bstr_t("su");
if (pIHTMLDocument3->getElementById(bs,&pElem)==S_OK && pElem)
{
CComQIPtr<IHTMLElement2> pElem2;
if (pElem->QueryInterface(IID_IHTMLElement2,(void**)&pElem2)==S_OK && pElem2)
{
CComQIPtr<IHTMLRect> ctlRect;
if (pElem2->getBoundingClientRect(&ctlRect)==S_OK && ctlRect)
{
long left,right,top,bottom;
ctlRect->get_left(&left);
ctlRect->get_right(&right);
ctlRect->get_top(&top);
ctlRect->get_bottom(&bottom);
::PostMessage(SrvWnd,WM_LBUTTONDOWN,VK_LBUTTON,MAKELPARAM(left+10,top+5));
::PostMessage(SrvWnd,WM_LBUTTONUP,0,MAKELPARAM(left+10,top+5));
}
}
}
...全文
261 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
仗剑骑驴 2016-12-28
  • 打赏
  • 举报
回复
多谢版主半夜还来回复,试了一下可以用. 问题出在IE页面切换后首次点击没反应,后面的点击就有反应了,刚才测试时一直是首次点击,还以为没作用
encoderlee 2016-12-28
  • 打赏
  • 举报
回复
应该是点击的坐标问题,我这里测试直接在代码里写坐标数字是能成功点击的。 确认一下你的left+10,top+5是不是“百度一下”这个按钮的坐标

3,248

社区成员

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

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