zoukankan      html  css  js  c++  java
  • WebBrowser keystroke

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

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

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

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

      

  • 相关阅读:
    001_jdk配置
    mysql(5.7)安装教程
    mysql(5.6)安装教程
    外网发布
    蓝桥 历届试题 分考场
    蓝桥 历届试题 合根植物
    Codeforces Round #650 (Div. 3) D : Task On The Board
    HDU 3336 Count the string
    leetcode [238. 除自身以外数组的乘积]
    leetcode [837. 新21点]
  • 原文地址:https://www.cnblogs.com/shaellancelot/p/5036988.html
Copyright © 2011-2022 走看看