WINCE 浏览器拦截弹出式窗口

王朝system·作者佚名  2006-01-09
宽屏版  字体: |||超大  

在嵌入式系统中由于硬件的限制,若使用浏览器来看普通的网站,很可能因为太多的窗口导致系统资源不足。况且可能是没有鼠标和键盘的系统,那些弹出式广告就非常的麻烦。最好是只有一个窗口进行上网浏览。

鉴于上面的原因,本人对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;

///////////////////////////////////////

这个代码可以拦截广告,但对在新窗口打开的链接采用了不是很好的处理,就是打开新窗口,关闭它的父窗口。在全屏效果下还是不错的。但就是不能退回到父窗口的内容了。若大家有好的解决方法,欢迎指教。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有