织梦CMS - 轻松建站从此开始!

罗索

WINCE浏览器拦截弹出式窗口

落鹤生 发布于 2009-12-01 21:29 点击:次 
这个代码可以拦截广告,但对在新窗口打开的链接采用了不是很好的处理,就是打开新窗口,关闭它的父窗口。在全屏效果下还是不错的。但就是不能退回到父窗口的内容了。若大家有好的解决方法,欢迎指教。
TAG:

在嵌入式系统中由于硬件的限制,若使用浏览器来看普通的网站,很可能因为太多的窗口导致系统资源不足。
况且可能是没有鼠标和键盘的系统,那些弹出式广告就非常的麻烦。最好是只有一个窗口进行上网浏览。
鉴于上面的原因,本人对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://www.rosoo.net/a/200912/8049.html]
本文出处:vckbase.com 作者:秩名
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容