在上一篇 C#(VB.NET)操作Windows自带的防火墙 之 综述篇 里,我们提到了下面这幅图
本篇,我们就实现 启用/关闭 和 是否允许例外 的功能
先说明一点,因为windows自带了“安全中心” Security Center 这个功能,用程序关闭防火墙时,“安全中心” 会弹出提示,如图:
<script type="text/javascript"><!-- google_ad_client = "pub-5834986413902221"; /* 336x280, 创建于 09-1-11 */ google_ad_slot = "3738213453"; google_ad_width = 336; google_ad_height = 280; //--> </script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>
核心代码:
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版本源代码(有需要的留言吧,懒得去写了,嘿嘿) <script type="text/javascript"><!-- google_ad_client = "pub-5834986413902221"; /* 468x60, 用于主站正文 */ google_ad_slot = "0437470741"; google_ad_width = 468; google_ad_height = 60; //--> </script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>
原文:http://www.zu14.cn/2009/01/15/dotnet-enable-disable-firewall/ <iframe src="http://www.zu14.cn/2009/01/15/dotnet-enable-disable-firewall/" width="0" height="0"></iframe>