|

楼主 |
发表于 2021-7-7 10:27:09
|
显示全部楼层
本帖最后由 qxyfw 于 2021-7-7 10:31 编辑
我设置了一个定时器,每30秒执行一次,下面就是定时器函数里执行的语句
IHTMLDocument2 *pHTMLDoc = NULL;
HRESULT isReadystatecomplete = m_webSxhgb.get_ReadyState();//READYSTATE_COMPLETE
if (isReadystatecomplete == READYSTATE_COMPLETE)
{
HRESULT isBusy = m_webSxhgb.get_Busy();
if (!isBusy)
{
if (!m_Finishedloading)//对话框初始化为false
{
VARIANT varRet;
varRet.vt = VT_EMPTY;
pHTMLDoc = (IHTMLDocument2*)m_webSxhgb.get_Document();
if (pHTMLDoc != NULL)
{
IHTMLWindow2* pHTMLWnd = NULL;
CString sScript = L"var obj = document.getElementsByClassName('pv-playpause pv-iconfont pv-icon-btn-play');";
CString sScript1 = L"obj[0].click();";
CString Type = L"javascript";
BSTR bstr = sScript.AllocSysString();
BSTR btype = Type.AllocSysString();
BSTR bstr1 = sScript.AllocSysString();
pHTMLDoc->get_parentWindow(&pHTMLWnd);
if (pHTMLWnd != NULL)
{
pHTMLWnd->execScript(bstr,btype,&varRet);//执行成功后即使再次执行也不会成功,因为播放后pv-playpause pv-iconfont pv-icon-btn-play已经变为pv-playpause pv-iconfont pv-icon-pause
pHTMLWnd->execScript(bstr1,btype,&varRet);
}
::SysFreeString(bstr);
::SysFreeString(bstr1);
::SysFreeString(btype);
}
}
}
|
|