WINCE 浏览器拦截弹出式窗口

类别:编程语言 点击:0 评论:0 推荐:
在嵌入式系统中由于硬件的限制,若使用浏览器来看普通的网站,很可能因为太多的窗口导致系统资源不足。况且可能是没有鼠标和键盘的系统,那些弹出式广告就非常的麻烦。最好是只有一个窗口进行上网浏览。 鉴于上面的原因,本人对wince的iesample进行了小小的修改。iesample 浏览器虽然可以通过注册表的修改,使其总在一个窗口打开,但会应为弹出式广告使网站总是现实广告,而且不能退回到主页,因为退了马上又回来了。修改注册表的代码如下 HKEY hKey; DWORD dwSize = sizeof(DWORD); if(ERROR_SUCCESS == RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("SOFTWARE\\Microsoft\\Internet Explorer\\Main"), 0, 0, &hKey)) { RegQueryValueEx(hKey, TEXT("StackRes"), NULL, NULL, (LPBYTE)&g_dwMainWindowStackSize, &dwSize); DWORD dwValue = 1; //RegSetValueEx(hKey,TEXT("NoNewWindows"), 0, REG_DWORD, (LPBYTE)&dwValue, sizeof(DWORD)); RegSetValueEx(hKey,TEXT("Scrollbar"), 0, REG_DWORD, (LPBYTE)&dwValue, sizeof(DWORD)); RegCloseKey(hKey); } 具体每项注册表的功能见http://www.vckbase.com/document/viewdoc/?id=1297 这里就介绍我的方法了。代码如下,在invoke的事件中 case DISPID_NEWWINDOW2: { READYSTATE m_ReadyState; _pBrowser->get_ReadyState(&m_ReadyState); if(m_ReadyState!=READYSTATE_COMPLETE) { *pdparams->rgvarg[0].pboolVal=TRUE; }// 弹出式拦截 else { *pdparams->rgvarg[0].pboolVal=FALSE; HandleNewWindow2(NULL, pdparams); ::SendMessage(_hWndBrowser,WM_CLOSE,0,0); return S_OK; }//target类型的弹出 } break; /////////////////////////////////////// 这个代码可以拦截广告,但对在新窗口打开的链接采用了不是很好的处理,就是打开新窗口,关闭它的父窗口。在全屏效果下还是不错的。但就是不能退回到父窗口的内容了。若大家有好的解决方法,欢迎指教。

本文地址:http://com.8s8s.com/it/it22525.htm