我写了一个简单的browser,想在一个打开的html网页里,实现自动点击提交按钮(就form里的submit)的功能。要怎样实现呢?

解决方案 »

  1.   

    http://www.csdn.net/Develop/article/22%5C22030.shtm
      

  2.   

    试试这段代码#include <atlbase.h>
    #include <Mshtml.h>
    #import "C:\\WINNT\\system32\\MSHtml.tlb"void CUrlDownFrm::OnMenuitemTest() 
    {
    LPDISPATCH lpDispatch;
    lpDispatch = pHtmlView->GetHtmlDocument(); // 在View类中就用this指针或省略
    ASSERT(lpDispatch);
    CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2> pDoc2;
    HRESULT hr;
    hr = lpDispatch->QueryInterface(IID_IHTMLDocument2, (void**)&pDoc2); //此行实现功能
    if( SUCCEEDED(hr) )
    {
    //取得文档中的XXXX(表单)
    CComPtr<IHTMLElementCollection> pElementCol;
    if (SUCCEEDED(pDoc2->get_forms(&pElementCol)))
    {
    // 取得元素个数
    long nElementCount=0;
    if(SUCCEEDED(pElementCol->get_length(&nElementCount)))
    {
    for(long i=0;i<nElementCount;i++)
    {
    // 取得元素
    _variant_t indx = i;
    CComPtr<IDispatch> spDisp;
    if(SUCCEEDED(pElementCol->item( indx, indx, &spDisp)))
    {
    // 取得元素接口
    CComPtr<IHTMLFormElement> pElement;
    if (SUCCEEDED(spDisp->QueryInterface( IID_IHTMLFormElement,(void **) &pElement)))
    {
    // 可能有多个FORM,取出来判断(如果只有一个FORM,循环都可以不要)
    BSTR bstr;
    pElement->get_name(&bstr);
    if(strcmp((char*)(_bstr_t)bstr,"login")==0)//可以通过查看源码,知道FORM的name属性
    pElement->submit();
    pElement.Release();
    }
    spDisp.Release();
    }
    }
    }
    pElementCol.Release(); }
    pDoc2.Release();
    }
    lpDispatch->Release();
    }