怎么获取网页上media player正在播放的歌曲url 本帖最后由 q523053 于 2010-05-05 15:22:01 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 从你贴的js来看,它是通过运行时修改 objPlayer.url = s_list+strFile0;objPlayer.src = s_list+strFile0;var objPlayer = document.getElementById("MediaPlayer");----------页面中有个 id = "MediaPlayer"的元素你在运行时用IHTMLDocument3::getElementById() 得到该元素,然后使用IHTMLElement::getAttribute获取其 src/url属性即可 url是FLASH对象的特定属性,src是MEDIA PLAYER的特定属性,你可以直接从对象获取播放器接口,然后读取对应的属性即可。 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(); } } }谢谢大家,成功了,上面的代码哪些是不是可以省略掉? 还有个问题:怎么判断网页正在刷新,IWebBrowser::Refresh是让它刷新,怎么截获程序中ie浏览器刷新的消息? 发送并读取串口数据 继续继续问如何解决msvcr80.dll不匹配的问题 单文档 添加按钮函数问题 ?? select 检测不到可读,请帮忙看一段 20行的程序 请教:VC6中如何加入Zthreads库,以便实现自己程序的多线程控制。 关于线程退出的问题 前輩們,小弟問一個有關發妹兒的問題 刚过两天的假期就极具无聊和空虚,真不知道7天以后会怎么样,烦死了。 哎,怎样用VC6.0编译,产生16位的DOS和16位Win程序?! 关于datagrid 控件取值问题 什么情况下需要#include <afxdtctl.h>? 请教各位,一个类,如何限制生成对象的数目?
objPlayer.url = s_list+strFile0;
objPlayer.src = s_list+strFile0;var objPlayer = document.getElementById("MediaPlayer");
----------页面中有个 id = "MediaPlayer"的元素
你在运行时用IHTMLDocument3::getElementById() 得到该元素,然后使用IHTMLElement::getAttribute获取其 src/url属性即可
{
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();
}
}
}谢谢大家,成功了,上面的代码哪些是不是可以省略掉?
怎么判断网页正在刷新,IWebBrowser::Refresh是让它刷新,怎么截获程序中ie浏览器刷新的消息?