我們就實現 啟用/關閉 和 是否允許例外 的功能
先說明一點,因為windows自帶了「安全中心」 Security Center 這個功能,用程式關閉防火牆時,「安全中心」 會彈出提示


 

要解決這個問題,其實很簡單,就是 將 Security Center 關閉,關閉的方法: 利用 net stop 或者 修改註冊表 或者.NET 裡面自帶的 windows service操作,都可以,我就不囉嗦了


 

核心代碼:
C# 方式:

 

/// <summary>
/// 獲取防火牆管理的當前策略
/// </summary>
/// <returns>返回策略對應的 object</returns>
private static object FirewallCurrentProfile()
{
//獲取管理防火牆的COM元件的type
Type fwMgrType = Type.GetTypeFromProgID("HNetCfg.FwMgr", true);
//創建一個COM元件的實例
object fwMgr = Activator.CreateInstance(fwMgrType);
//獲取實例的LocalPolicy屬性
object localPolicy = fwMgrType.InvokeMember("LocalPolicy", BindingFlags.GetProperty, null, fwMgr, null);
//獲取 LocalPolicy屬性的子屬性CurrentProfile
return localPolicy.GetType().InvokeMember("CurrentProfile", BindingFlags.GetProperty, null, localPolicy, null);
}
VB.NET 方式:

 

Private Function FirewallProfile() As Object
Dim FWMgr As Object = CreateObject("HNetCfg.FwMgr")
Return FWMgr.LocalPolicy.CurrentProfil
End Function

 

C# 版本原始程式碼下載 VB.NET版本原始程式碼(有需要的留言吧,懶得去寫了,嘿嘿)
原文:HTTP://www.zu14.cn/2009/01/15/dotnet-enable-disable-firewall/
arrow
arrow
    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()