云联天下首页 |  登陆 |  注册 |  密码找回 |  关于我们 | 加入收藏 
首页技术资料图形图像→让你的浏览器更强!过滤FLASH、控件等等 【字号: 】 【背景色 杏仁黄 秋叶褐 胭脂红 芥末绿 天蓝 雪青 灰 银河白(默认色)

让你的浏览器更强!过滤FLASH、控件等等

网址来源:http://www.kehui.net发布时间: 2002-12-29 14:15:24



(本文涉及IEInternet ExplorerWebBrowser2CHtmlViewname space)



商业网站的广告越做越大。新浪网的巨幅FLASH广告居然充满了整个屏幕!



广大网民上网可受不了这个.....小猫怎么会受得了FLASH的蹂躏~



怎么办呢?一般来说,IE控件可以禁用图片、视频、声音和控件



禁止控件自然就禁止了FLASH,但这样将使浏览器失去大不分功能,不于考虑。



那么过滤整个机器的URL可不可以呢?



可以,但那样底层的操作不是一步两步能实现的,另外....对整个系统以及浏览器的稳定性有较大影响。



也许你会说,做一个127.0.0.1的代理服务器过滤FLASH,再让给自己的浏览器使用该代理。结果会和上面一样,稳定性不好,还可能会和浏览器自身的代理发生冲突。



到底怎么做?呵呵~正题来了!首先感谢畅游的帮助。



利用name space!



下面就说在自编浏览器里的具体实现:(如果你想了解name space的更多内容请访问MSDN网站搜索"name space"关键字)



首先,给你的自编浏览器填加一个ATL类,填加之后CLASS向导会自动给你的工程加一个modul,这些我们都不必理会。



假设所填加的类叫:IAUrl



之后你要做的就是给类填加IInternetProtocolInfo和IInternetProtocol两个接口的实现。并加一个IInternetProtocolSink* m_pProtSink;成员变量。



 



下面要做的很简单:



找到IAUrl的Start函数(实现上面两个接口后回自动出现该函数)



实现如下代码:



STDMETHODIMP IAUrl::Start(
        LPCWSTR szUrl,
        IInternetProtocolSink *pIProtSink,
        IInternetBindInfo *pIBindInfo,
        DWORD grfSTI,
        DWORD dwReserved)
{
 // 检查URL请求的最后4个字符是否为.swf,是的话,就过滤掉



 CString s(szUrl);
 if(s.Right(4)==".swf")
 {
  m_pProtSink = pIProtSink;
  m_pProtSink->AddRef();
  m_pProtSink->ReportResult(S_OK, 0, 0);
  m_pProtSink->Release();
  return S_OK;
 }
 return INET_E_USE_DEFAULT_PROTOCOLHANDLER;
}   



 



针对IAUrl类的工作结束了。下面在你的窗口类里调用IIAUrl接口



给CMainFrame增加2个成员变量:



 IInternetSession* m_pSession;
 IClassFactory* m_pFactory;



然后在程序初始阶段(比如OnCreate里面)



 //注册name space



HRESULT hr = CoGetClassObject(CLSID_IAUrl, CLSCTX_SERVER, NULL, IID_IClassFactory, (void**)&m_pFactory);
 if(hr==S_OK)
 {
  if(CoInternetGetSession(0, &m_pSession, 0)==S_OK)
   m_pSession->RegisterNameSpace(m_pFactory, CLSID_IAUrl, L"http", 0, NULL, 0);
 }



在程序结束的时候



 //注销name space



 if(m_pSession!=NULL)
 {
  m_pSession->UnregisterNameSpace(m_pFactory, L"http");
  m_pSession->Release();
 }
 if(m_pFactory!=NULL)
  m_pFactory->Release();



 }



OK,搞定了,现在你的浏览器可以过滤FLASH了,嘿!效果真不错!



下载IAUrl类原代码:(3KB)



http://263.csdn.net/FileBBS/files/2001_10/T_726_1.zip



 



    




系统 

相关新闻
v 在delphi中使用flash控件 2002-12-29 14:15:24
v 美国Macromedia发表“Macromedia Flash MX” 2002-12-29 17:27:30
v 推荐用 Flash做一般文字为主的页面 2002-12-29 18:11:28
v Flash播放新秀--David Flash Player V1.4 2002-12-29 18:11:28
v 芝麻开门--谈谈Flash的反编译 2003-06-28 10:03:21
v Flash 中英文字应用环境分析 2003-08-30 22:36:15
v 使用 Flash满足IE和NS的兼容 2003-08-30 22:36:15
v 怎么给网页中的FLASH动画加超连接,加事件... 2004-01-02 21:34:12
v svg 至 flash的转化 2004-01-02 21:34:12
v 用Flash的as创建人性化雪花的效果 2004-01-29 21:42:04
  最新新闻
智慧家居
智慧家居颠覆传统智能家居
智慧云谷让智能家居变成有智慧的
智慧云谷引领智慧家居新生活
科技改变生活 智慧云谷智慧家居系
智慧家居领航者,智慧云谷助你玩
智能家居如何赢得市场美誉度?
智慧云谷智慧家居:创业者有无限
WiFi智能家居你还在用?这样的智
互联网+助推智能家居产业
智慧云谷为您打造真正的智能家居
智能家居产业需要的不是单品,而
新家如何选择开关?智慧云谷iWis
智能传感器-世界首款“智”为你的
智慧云谷开关智能安防智能空气质
智能开关品牌,如何选择智能开关
秋季干燥,智慧家居温湿度传感器
传感器助力智慧家居 感知爱家
iWiscloud智能触摸开关缔造家居装

  最新帖子
 ※室内空气污染的危害及  [sensor]
 ※超声波风速传感器在生  [sensor]
 ※这么冷清  [gabc111]
 ※手机APP操作有问题  [ssy11407]
 ※智慧云谷智慧家居将在  [cici]
 ※上传下载  [cici]
 ※下载智慧家居  [apple2008]
 ※秋季干燥,智慧家居温  [apple2008]
 ※智慧家居紧扣热点 安全  [apple2008]
 ※办公大楼如何智慧化管  [apple2008]
 ※智慧云谷工业自控的优  [apple2008]
 ※传感器助力智慧家居 感  [apple2008]
 ※智能开关品牌,如何选  [apple2008]
 ※智慧云谷开关智能安防  [apple2008]
 ※没有专业人员,如何安  [apple2008]
 ※烟台智慧云谷董事长任  [apple2008]
 ※互联网+助推智能家居产  [apple2008]
 ※WiFi智能家居你还在用  [apple2008]
 ※智慧云谷智慧家居:创  [apple2008]
 ※智能家居如何赢得市场  [apple2008]
钯碳回收 硝酸银回收 银浆回收 银焊条回收 回收银浆 氯化钯回收 氯化钯回收 氧化钯回收 回收硝酸钯 钯水回收价格 海绵钯回收 钯炭回收价格 回收镀金板 深圳钯碳回收 镇江氯化钯回收 杭州钯浆回收 银浆回收多少钱 回收钯碳公司 硝酸银的价格 那里有回收金 氯化钯回收价格 江苏擦银布回收 硝酸银价格 德州钯粉回收 银铜回收 回收钯粉 回收铂碳催化剂 佛山钯碳回收 金盐回收价格 海绵钯回收 钯碳高价回收 钯回收价格 钯炭回收