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

转载:http://www.cnblogs.com/sjcatsoft/archive/2009/01/15/1376489.html

在上一篇 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

源码下载:http://www.boxcn.net/shared/quaa9b3dle

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端小叙

js实现图片粘贴上传到服务器并展示

最近看了一些有关于js实现图片粘贴上传的demo,实现如下: (这里只能检测到截图粘贴和图片右键复制之后粘贴) demo1: document.addEvent...

58960
来自专栏北京马哥教育

Redis(2.8版本)配置文件参数中文详解

#daemonize no 默认情况下, redis 不是在后台运行的,如果需要在后台运行,把该项的值更改为 yes daemonize yes # 当 r...

32360
来自专栏木头编程 - moTzxx

Laravel5下自定义错误页面的配置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

39640
来自专栏性能与架构

体验 Mysql shell 控制台

以前登录Mysql的控制台后,使用SQL语言来操作数据库,如 mysql> select * from tablename; Mysql 5.7.12 之后有了...

394100
来自专栏逆向技术

32位汇编第三讲,RadAsm,IDE的配置和使用,以及汇编代码注入方式

    32位汇编第三讲,RadAsm,IDE的配置和使用,以及汇编代码注入方式 一丶RadAsm的配置和使用 用了怎么长时间的命令行方式,我们发现了几个问题 ...

60050
来自专栏aoho求索

基于redis的分布式锁实现

关于分布式锁 很久之前有讲过并发编程中的锁并发编程的锁机制:synchronized和lock。在单进程的系统中,当存在多个线程可以同时改变某个变量时,就需要...

47880
来自专栏owent

Redis全异步(HA)Driver设计稿

现在Redis的集群功能已经Release。但是并没有一个官方直接提供的高可用性的API可以使用。有的只有解决方案,Sentinel和Cluster。所以有必要...

12110
来自专栏码洞

RPC 服务器之【多进程描述符传递】高阶模型

今天老师要给大家介绍一个比较特别的 RPC 服务器模型,这个模型不同于 Nginx、不同于 Redis、不同于 Apache、不同于 Tornado、不同于 N...

16320
来自专栏圣杰的专栏

RabbitMQ知多少

1.引言 RabbitMQ——Rabbit Message Queue的简写,但不能仅仅理解其为消息队列,消息代理更合适。RabbitMQ 是一个由 Erlan...

28570
来自专栏云计算教程系列

如何在Debian 9上使用mod_rewrite为Apache重写URL

Apache的mod_rewrite模块允许您以更干净的方式重写URL,将人类可读的路径转换为代码友好的查询字符串。它还允许您根据条件重写URL。

18540

扫码关注云+社区

领取腾讯云代金券