彈出窗口殺手是一個可以自動關閉IE彈出窗口的程序,它工作在系統的托盤中,按照一定的間隔來檢測IE窗口,然後關閉彈出窗體。最後,還提供了用熱鍵來殺掉彈出窗口的功能。
雖然已經有類似的用C++寫的程序,但是本文講述的是用C#來實現這些功能,並且本文所講的方案在查找窗口上的方法要比更快一些。
這是一個嶄新的話題,在Internet上我們還可以看到許多類似的程序。但是我也還是要借這個機會來講述一些下面的技術在C#中如何實現:
系統托盤
程序切換
計時控件
查找窗口
系統熱鍵
生成一個系統托盤程序
首先,產生一個新的C# Windows Form程序, 將NotifyIcon控件從工具箱中拖到窗體中,如下圖所示:
在C# Windows Form程序中添加托盤
為了保證系統托盤的圖標和應用程序的圖標一致,我們用一個共同的圖標文件a.ico來設置系統托盤的圖標和應用程序的圖標。
為了使程序不顯示在工具欄上,我們可以設置窗體的visible屬性為false. 這個可以在窗體屬性窗口中直接實現。
this.ShowInTaskbar = false;
到目前為止,系統托盤已基本好了,但是我們還沒有設置右鍵菜單,也沒有使程序顯示和隱藏的功能。
程序切換
首先,程序的主窗體可以根據不同的狀態來選擇顯示或者是隱藏,除此之外,我們可以用Windowstate設置窗體的狀態:
public void HideApp()
{
this.WindowState = FormWindowstate.Minimized;
Hide();
}
public void ShowApp()
{
Show();
this.WindowState = FormWindowstate.Normal;
}