我在MFC 中用 Microsoft Web浏览器 加载了一个网页。我想把网页里面的一张图片验证码复制到当前DC中,请问用什么方法?用 savetofile 函数可以吗?具体应该怎么用呢?

解决方案 »

  1.   

    你把那图片的地址拷贝下来,然后用WebBrowser去Navigate。
    例如:
    http://passport.csdn.net/ShowExPwd.aspx?DateTime=2006-7-14 0:54:25&strimg=0.05516608420630431
    软后随便用GetDC即可。
      

  2.   

    谢谢了, richmain 。但是因为验证码图片的地址每次都不一样,我想应该是让程序每次加载这个页面以后自动去寻找这张图片验证码的地址,并复制吧。那应该怎么写代码呢?Navigate函数的作用我看了MSDN看不太懂,是不是把指定地址的一幅图片变成资源?
    我这样写对不对:
    LPCTSTR vaUrl1="http://www.163.com/images/neteaselogo.gif";
    m_ie.Navigate(vaUrl1);
      

  3.   

    Navigate方法我已经会用了。但是怎样让程序自动去得到 图片验证码的地址呢?
      

  4.   

    Navigate方法我已经会用了。但是怎样让程序自动去得到 图片验证码的地址呢?因为图片难证码地址每次都变。所以只能用程序在每次加载网页以后去自动捕获吧?
      

  5.   

    LPDISPATCH lpDispatch=NULL;
    m_pBrowserApp->get_Document(&lpDispatch); 
    if(!lpDispatch)
    return ;
    HRESULT hr=lpDispatch->QueryInterface(IID_IHTMLDocument2, (void**)&m_pHtmlDoc2); 
    IHTMLElementCollection* pColl;
    HRESULT hr = m_pHtmlDoc2->get_all( &pColl );
    if (hr == S_OK)
    {
    LONG celem;
    hr = pColl->get_length( &celem ); if ( hr == S_OK )
    {
    for ( int i=0; i< celem; i++ )
    {
    VARIANT varIndex;
    varIndex.vt = VT_UINT;
    varIndex.lVal = i;
    VARIANT var2;
    VariantInit( &var2 );
    IDispatch* pDisp;  hr = pColl->item( varIndex, var2, &pDisp );
    } } pColl->Release();
    }
    m_pHtmlDoc2->Release();
      

  6.   

    例如上面的那个地址的特征码是:ShowExPwd.aspx?DateTime=
      

  7.   

    richmain没明白楼主的意思。
    楼主是说每次访问这个图片,人眼所看到的图片的内容都会变,比如这次是“1234”,在访问一次就变成“abcd”了。而楼主想编程得到的内容是那个“1234”