您的位置:首页 > 编程语言 > VB

C#(VB.NET)操作Windows自带的防火墙 之 启用(开启)/禁用(关闭)防火墙

2009-01-15 17:01 531 查看
在上一篇 C#(VB.NET)操作Windows自带的防火墙 之 综述篇 里,我们提到了下面这幅图



本篇,我们就实现 启用/关闭是否允许例外 的功能

先说明一点,因为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/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐