在网上看到了一则代码好称能过滤广告,那个发帖人说在VC6中可以通过,可是我用啊哈C编译,却。。。。
void KillAdvert::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
if(nIDEvent==1)
{
CWnd* pMainWnd = AfxGetMainWnd()->GetWindow(GW_HWNDFIRST);
while (pMainWnd)
{
CString strClassName;
GetClassName(pMainWnd->m_hWnd,strClassName.GetBufferSetLength(100),100);
if(strClassName=="IEFrame")
{
CWnd* pChildWnd=CWnd::FromHandle(FindWindowEx(pMainWnd->m_hWnd,NULL,
"Worker",NULL));
if(!pChildWnd)
pChildWnd=CWnd::FromHandle(FindWindowEx(pMainWnd->m_hWnd,NULL,
"WorkerA",NULL));
if(pChildWnd)
{
CWnd* pChildNextWnd=CWnd::FromHandle(FindWindowEx(pMainWnd->m_hWnd,pChildWnd->m_hWnd,
"Worker",NULL));
if(!pChildNextWnd)
pChildNextWnd=CWnd::FromHandle(FindWindowEx(pMainWnd->m_hWnd,pChildWnd->m_hWnd,
"WorkerA",NULL));
if(pChildNextWnd)
{
if(!(GetWindowLong(pChildWnd->m_hWnd,GWL_STYLE)&WS_VISIBLE))
{
pTempWnd=NULL;
pTempWnd=pMainWnd;
KillTimer(1);
SetTimer(2,800,NULL);
return;
}
}
}
}
pMainWnd = pMainWnd->GetWindow(GW_HWNDNEXT);
}
}
else
{
pTempWnd->PostMessage(WM_CLOSE,0,0);
KillTimer(2);
SetTimer(1,400,NULL);
}
}
|