本帖最后由 q523053 于 2010-05-05 15:22:01 编辑

解决方案 »

  1.   

    从你贴的js来看,它是通过运行时修改 
    objPlayer.url = s_list+strFile0;
    objPlayer.src = s_list+strFile0;var objPlayer = document.getElementById("MediaPlayer");
    ----------页面中有个 id = "MediaPlayer"的元素
    你在运行时用IHTMLDocument3::getElementById() 得到该元素,然后使用IHTMLElement::getAttribute获取其 src/url属性即可 
      

  2.   

    url是FLASH对象的特定属性,src是MEDIA PLAYER的特定属性,你可以直接从对象获取播放器接口,然后读取对应的属性即可。
      

  3.   

    VOID OnGetHtml(VOID)
    {
        IDispatchPtr   spDisp;
        if(WebBrowser->get_Document(&spDisp)   ==   S_OK   &&   spDisp!=   0   )
        {
            MSHTML::IHTMLDocument2Ptr   spHtmlDocument(spDisp);
            MSHTML::IHTMLElementPtr   spHtmlElement;
            spHtmlDocument->get_body(&spHtmlElement);
            HRESULT   hr;
            MSHTML::IHTMLElementCollection*   pColl=NULL;
            hr=spHtmlDocument->get_all(&pColl);
            if(SUCCEEDED(hr))
            {
                MSHTML::IHTMLElement*   pElem=NULL;
                _variant_t   index;
                index.vt=VT_I4;
                index.intVal=0;
                _variant_t   name("MediaPlayer");
                IDispatchPtr   disp;
                disp=pColl->item(name,index);
                if(disp==NULL)
                    hr=E_FAIL;
                else
                {
                    hr=disp->QueryInterface(&pElem);
                }
                if   (SUCCEEDED(hr)&&   pElem   !=   NULL)
                {
                    //
                    BSTR   bstrhtml;
                    _bstr_t bstrt="url";
                    _variant_t  vt;
                    vt=pElem->getAttribute(bstrt,0);//  get_outerHTML(&bstrhtml);
                    MsgBox((LPCWSTR)_bstr_t(vt));
                    //  pElem->click();
                    pElem->Release();
                }
            }
        }谢谢大家,成功了,上面的代码哪些是不是可以省略掉?
      

  4.   

    还有个问题:
    怎么判断网页正在刷新,IWebBrowser::Refresh是让它刷新,怎么截获程序中ie浏览器刷新的消息?