www.TimeGIS.com

时空地图 www.TimeGIS.com

交互式图形化建模仿真软件开发

导航

KuaiShou Synergy 一种消除弹出式广告窗口的方法

在浏览网页的时候,常常看到一个带有广告的弹出式窗口,有时候是好几个.

网络上有关如何屏蔽弹出式广告的方法很多, 今天自己也写了一个小工具, 算是练练手.

使用很简单, 启动程序后, 只需要按一下键盘最右上角的Pause暂停键,就可以关闭最上面的广告窗口,并且记录下来,下次自动关闭.

界面如图所示. 

 

这里提供源码, 其中参考了几篇文章.

http://www.codeproject.com/KB/cs/WindowKiller.aspx 用来关闭不想要的窗口

http://www.codeproject.com/KB/cs/globalhook.aspx 处理全局钩子程序, 比如提供热键功能.

因为广告是经常变换的, 所以我把自己的列表上传到个人网站上, 这样可以通过菜单更新.

当然, 最好的办法是,大家群策群力,一起上传自己的列表,但是有人会做坏事,

本来想通过发送邮件方式来上传,然后人工添加和维护,也许有人愿意这么做.

如果有谁知道如何消除浮动广告窗口的方法,请告诉我.

下面贴一段有关如何得到最上层浏览器窗口标题的代码:

  

 

 1  private string GetBrowserTitle()
 2  {
 3   System.Int32 window_handle = User32.GetTopWindow(User32.GetDesktopWindow());
 4
 5   int nsize = 256;
 6   System.Text.StringBuilder text_stringBuilder = new System.Text.StringBuilder(nsize);
 7   string ieText_string = " - Windows Internet Explorer";
 8   System.Text.StringBuilder class_stringBuilder = new System.Text.StringBuilder(nsize);
 9
10   try
11   {
12    while (true)
13    {
14     User32.GetWindowText(window_handle, text_stringBuilder, nsize);
15
16     string s = text_stringBuilder.ToString();
17
18     if (s.IndexOf(ieText_string) > -1)
19     {
20      s = s.Replace(ieText_string, "");
21      return s;
22     }

23     if ((window_handle = User32.GetWindow(window_handle, User32.GW_HWNDNEXT)) == 0)
24     {
25      return null;
26     }

27    }

28   }

29   catch (Exception) return null; }
30  }

31
32

 

Vs2008版本项目下载: synergy代码

 

 

posted on 2009-11-02 21:25  时空地图-TimeGIS-com  阅读(704)  评论(0编辑  收藏  举报

www.TimeGIS.com