在浏览网页的时候,常常看到一个带有广告的弹出式窗口,有时候是好几个.
网络上有关如何屏蔽弹出式广告的方法很多, 今天自己也写了一个小工具, 算是练练手.
使用很简单, 启动程序后, 只需要按一下键盘最右上角的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

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

Vs2008版本项目下载: synergy代码