在我的程序中,获取了IE浏览器的句柄,怎么获得页面内的HTML内容啊?

解决方案 »

  1.   

    遍历html的信息存入一个ini文件 
    BOOL SaveFormData(CHtmlView* pView,CString DataFileName,CString SectionName)
    {
     IHTMLDocument2* pDoc = NULL;
     IHTMLElementCollection* pAllElem = NULL;
     IHTMLElement* pElem = NULL;
     IHTMLTextAreaElement* pTextArea=NULL;
     IHTMLSelectElement* pSelect=NULL;
     IHTMLInputElement* pInput=NULL;
     BOOL Result=TRUE;
     pDoc = (IHTMLDocument2*)(pView->GetHtmlDocument());
     if(pDoc!=NULL)
     {
      pDoc->get_all(&pAllElem);
      if(pAllElem!=NULL)
      {
       long EleCount;
       pAllElem->get_length(&EleCount);
       VARIANT vEleName;
       BSTR bValue;
       for(int i=0; i    {
        vEleName.vt = VT_I4;
        vEleName.lVal=i;
        if(pAllElem->item(vEleName,vEleName,(LPDISPATCH*)&pElem)==S_OK)
        {
         if(pElem!=NULL)
         {
          pElem->QueryInterface(&pInput);
          if(pInput!=NULL)
          {
           BSTR bType;
           pInput->get_type(&bType);
           CString Type(bType);
           SysFreeString(bType);
           if(Type=="text" || Type=="hidden")
           {
            pInput->get_name(&bValue);
            CString name(bValue);
            SysFreeString(bValue);
            pInput->get_value(&bValue);
            CString value(bValue);
            SysFreeString(bValue);
            WritePrivateProfileString(SectionName,name,value,DataFileName);
           }//if(Type=="text"
           else if(Type=="checkbox")
           {
            pInput->get_name(&bValue);
            CString name(bValue);
            SysFreeString(bValue);
            VARIANT_BOOL Check;
            pInput->get_checked(&Check);
            if(Check)
            {
             pInput->get_value(&bValue);
             CString value(bValue);
             SysFreeString(bValue);
             WritePrivateProfileString(SectionName,name,value,DataFileName);
            }
            else
             WritePrivateProfileString(SectionName,name,"0",DataFileName);
           }
           pInput->Release();
          }//if(pInput!=NULL)
          pElem->QueryInterface(&pTextArea);
          if(pTextArea!=NULL)
          {
           pTextArea->get_name(&bValue);
           CString name(bValue);
           SysFreeString(bValue);
           pTextArea->get_value(&bValue);
           CString value(bValue);
           SysFreeString(bValue);
           WritePrivateProfileString(SectionName,name,value,DataFileName);
           pTextArea->Release();
          }//if(pTextArea!=NULL)
          pElem->QueryInterface(&pSelect);
          if(pSelect!=NULL)
          {
           pSelect->get_name(&bValue);
           CString name(bValue);
           SysFreeString(bValue);
           pSelect->get_value(&bValue);
           CString value(bValue);
           SysFreeString(bValue);
           WritePrivateProfileString(SectionName,name,value,DataFileName);
           pSelect->Release();
          }//if(pSelect!=NULL)
          pElem->Release();
         }//if(pElem!=NULL)
        }//pAllElem->item(
       }//for
       pAllElem->Release();
      }//if(pAllElem!=NULL)
      pDoc->Release();
     }//if(pDoc!=NULL)
     return Result;
    }
      

  2.   


    回复1楼:
    这个要利用webbrower控件,我的程序中不用这个控件。
      

  3.   

    步骤:   
      1、通过IE句柄得到IHTMLDocument2接口   
      http://blog.csdn.net/lion_wing/archive/2006/05/26/756105.aspx   
      2、通过IHTMLDocumnet2得到网页源代码   
      http://blog.csdn.net/lion_wing/archive/2006/06/02/769742.aspx
      

  4.   

    把不必须通过浏览器句柄得到IWebBrowser2指针
    获取IWebBrowser2指针的方法(一)http://blog.csdn.net/tingsking18/archive/2009/09/30/4620065.aspx获取IWebBrowser2指针的方法(二)
    http://blog.csdn.net/tingsking18/archive/2009/09/30/4620144.aspx