博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WebBrowser keystroke
阅读量:4700 次
发布时间:2019-06-09

本文共 849 字,大约阅读时间需要 2 分钟。

问题描述:将对话框中的回车消息传递到WebBrowser控件中去。

一开始的解决方案是:通过iwebbrowser2的成员函数get_HWND获取控件的句柄,然后通过SendMessage发送按键消息。但是这个方法在第一步就出现了问题,get_HWND返回的是E_FAIL。对于这个问题,找了一圈没有结果,但是偶然间遇到了启发--可以使用Windows的API实现相应的功能,如此就不用去传递消息了。

解决方法:使用IHTMLDocument的成员函数获取到页面按钮元素,然后模拟点击操作

do // 本代码以www.baidu.com为测试{	// 获取	IWebBrowser2 * m_spWebBrowser2 = CComPtr
( m_pWebShow->GetWebBrowser2()) ; if (!m_spWebBrowser2) { break; } CComPtr
m_spDispatch; m_spWebBrowser2->get_Document( &m_spDispatch ); if ( !m_spDispatch ) { break; } CComQIPtr
pHtmlDoc3( m_spDispatch ); CComPtr
m_spElem; HRESULT hr = pHtmlDoc3->getElementById(CComBSTR(_T("su")), &m_spElem);// 此处修改submit按钮ID if(FAILED(hr) || !m_spElem) { break; } m_spElem->click();} while (FALSE);

转载于:https://www.cnblogs.com/tangshiguang/p/6735769.html

你可能感兴趣的文章
一次搞懂全排列——LeetCode四道Permutations问题详解
查看>>
Maven version management with Nexus
查看>>
Android开发中如何解决加载大图片时内存溢出的问题
查看>>
Java-GC 垃圾收集算法
查看>>
HDU 1520 Anniversary party
查看>>
webpack无法热加载(__webpack_hmr 502)
查看>>
StringUtils.hasText()
查看>>
5.jsp EL jstl
查看>>
20165310 实验三-并发程序
查看>>
PHP修改post请求和get请求的优先级
查看>>
数组的反射
查看>>
EDM制作要点
查看>>
Dockerfile详解(一)
查看>>
MongoDB语法与现有关系型数据库SQL语法比较
查看>>
[Leetcode] Search a 2D Matrix
查看>>
jpa
查看>>
潭州课堂25班:Ph201805201 爬虫基础 第十四课 js破解 (课堂笔记)
查看>>
percona顶级项目(针对数据库)
查看>>
MYSQL INNODB PAGE一督
查看>>
转 CSS hack:针对IE6,IE7,firefox显示不同效果
查看>>