KuaiShou Synergy 一種消除彈出式廣告視窗的方法
在浏覽網頁的時候,常常看到一個帶有廣告的彈出式視窗,有時候是好幾個.
網絡上有關如何屏蔽彈出式廣告的方法很多, 今天自己也寫了一個小工具, 算是練練手.
使用很簡單, 啟動程式後, 隻需要按一下鍵盤最右上角的Pause暫停鍵,就可以關閉最上面的廣告視窗,并且記錄下來,下次自動關閉.
界面如圖所示.
在浏覽網頁的時候,常常看到一個帶有廣告的彈出式視窗,有時候是好幾個.
網絡上有關如何屏蔽彈出式廣告的方法很多, 今天自己也寫了一個小工具, 算是練練手.
使用很簡單, 啟動程式後, 隻需要按一下鍵盤最右上角的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代碼