在工程中要先引入:

NetCon 1.0 Type Library

NetFwTypeLib

  1. Option Explicit
  2. Const NET_FW_SCOPE_ALL = 0
  3. Const NET_FW_SCOPE_LOCAL_SUBNET = 1
  4. Const NET_FW_IP_VERSION_ANY = 2
  5. '获取Windows防火墙的当前状态
  6. Public Function FirewallStatus() As Boolean
  7. Dim fwMgr As INetFwMgr
  8. Dim oProfile As INetFwProfile
  9. On Error GoTo errHandler
  10. '声明Windows防火墙配置管理接口对象
  11. Set fwMgr = CreateObject("HNetCfg.FwMgr")
  12. '获取本地防火墙当前的配置对象
  13. Set oProfile = fwMgr.LocalPolicy.CurrentProfile
  14. '获取防火墙的状态,Ture表示启用,False表示禁用
  15. FirewallStatus = oProfile.FirewallEnabled
  16. Set oProfile = Nothing
  17. Set fwMgr = Nothing
  18. Exit Function
  19. errHandler:
  20. FirewallStatus = False
  21. MsgBox ("Error: & Err.Description")
  22. Err.Clear
  23. End Function
  24. '切换Windows防火墙的状态
  25. Public Sub SwitchFirewall()
  26. Dim fwMgr As INetFwMgr
  27. Dim oProfile As INetFwProfile
  28. On Error GoTo errHandler
  29. '声明Windows防火墙配置管理接口对象
  30. Set fwMgr = CreateObject("HNetCfg.FwMgr")
  31. '获取本地防火墙当前的配置对象
  32. Set oProfile = fwMgr.LocalPolicy.CurrentProfile
  33. '根据当前的防火墙状态相应地调整启用与禁用状态
  34. oProfile.FirewallEnabled = Not (oProfile.FirewallEnabled)
  35. Set oProfile = Nothing
  36. Set fwMgr = Nothing
  37. Exit Sub
  38. errHandler:
  39. MsgBox (Err.Description)
  40. Err.Clear
  41. End Sub
  42. '将当前应用程序添加到Windows防火墙例外列表
  43. Public Sub AddApplicationRule()
  44. Dim fwMgr As INetFwMgr
  45. Dim oProfile As INetFwProfile
  46. On Error GoTo errHandler
  47. '声明Windows防火墙配置管理接口对象
  48. Set fwMgr = CreateObject("HNetCfg.FwMgr")
  49. '获取本地防火墙当前的配置对象
  50. Set oProfile = fwMgr.LocalPolicy.CurrentProfile
  51. Dim oApplication As INetFwAuthorizedApplication
  52. '声明认证程序对象
  53. Set oApplication = CreateObject("HNetCfg.FwAuthorizedApplication")
  54. '设置认证程序对象的相关属性
  55. With oApplication
  56. '应用程序的完整路径
  57. .ProcessImageFileName = App.Path & "\" & App.EXEName & ".exe"
  58. '应用程序的名称,也就是在Windows防火墙例外列表中显示的名称
  59. .Name = "测试例子"
  60. '定义本规则作用的范围
  61. .Scope = NET_FW_SCOPE_ALL
  62. '定义本规则用户的IP协议版本
  63. .IpVersion = NET_FW_IP_VERSION_ANY
  64. '表示启用当前规则
  65. .Enabled = True
  66. End With
  67. '将创建的认证程序对象添加到本地防火墙策略的认证程序集合
  68. oProfile.AuthorizedApplications.Add oApplication
  69. Set oApplication = Nothing
  70. Set oProfile = Nothing
  71. Set fwMgr = Nothing
  72. MsgBox ("添加成功!")
  73. Exit Sub
  74. errHandler:
  75. MsgBox (Err.Description)
  76. Err.Clear
  77. End Sub
  78. Private Sub Command1_Click()
  79. SwitchFirewall
  80. Label1.Caption = FirewallStatus
  81. End Sub
  82. Private Sub Command3_Click()
  83. AddApplicationRule
  84. Label1.Caption = FirewallStatus
  85. End Sub

VB编写的程序加入防火墙的例外中的更多相关文章

  1. 在防火墙的例外中注册程序(Windows7和XP),改写注册表

    在写程序的时候,经常遇到被防火墙拦截的情况,尤其是一些网络程序,不管是对外访问还是外部连接,都会被拦截. 在大多情况下,Windows会静默拦截外部对内的连接访问,而内部对外的访问会提示用户信息. 现 ...

  2. cmd命令添加一个应用程序到防火墙例外项中

    windows+r 键打开运行 输入cmd按回车 把下列命令在cmd中点击右键粘贴进去,按回车,即可添加到防火墙例外程序列表中. netsh advfirewall firewall delete r ...

  3. 编写Java程序,模拟文件操作过程中的异常处理

    返回本章节 返回作业目录 需求说明: 从控制中输入计算机磁盘中后缀名为".txt"的文件的完整物理路径. 如果该文件存在,则在控制台输出友好提示信息,告知用户该文件存在,如果文件不 ...

  4. 编写 Java 程序时, 如何在 Java 中创建死锁并修复它?

    经典但核心Java面试问题之一.如果你没有参与过多线程并发 Java 应用程序的编码,你可能会失败.

  5. 梯有N阶,上楼可以一步上一阶,也可以一步上二阶。编写一个程序,计算共有多少中不同的走法?

    c语言实现,小伙伴们谁要有更好的实现方法,要告诉我呦 #include int main(void) { int f,i,f1=1,f2=2; printf("请输入楼梯数"); ...

  6. 编写一个程序,将 a.txt 文件中的单词与 b.txt 文件中的单词交替合并到 c.txt 文件中,a.txt 文件中的单词用回车符分隔,b.txt 文件中用回车或空格进行分隔。

    package IO; import java.io.*; public class test { public void connectWords(File file1, File file2, F ...

  7. 编写Java程序,创建Dota游戏中的防御塔类,通过两个坐属性显示防御塔所在的位置

    返回本章节 返回作业目录 需求说明: 创建Dota游戏中的防御塔类 通过两个坐属性显示防御塔所在的位置 实现思路: 创建防御塔(TowerDefense)类 在该类中定义了两个属性,分别是int类型横 ...

  8. 编写Java程序,在子类老虎中重写父类动物的吃食方法

    返回本章节 返回作业目录 需求说明: 在子类老虎中重写父类动物的吃食方法 实现思路: 在子类老虎中重写父类动物的吃食方法的实现思路如下: 创建各种动物的父类Animal类,在该类中定义eat()方法. ...

  9. 编写Java程序,创建Dota游戏中的兵营类,兵营类有一个类成员变量count、一个实例变量name和另一个实例变量selfCount。

    返回本章节 返回作业目录 需求说明: 创建Dota游戏中的兵营类 兵营类有一个类成员变量count.一个实例变量name和另一个实例变量selfCount. count表示的是兵营已经创建士兵的总数: ...

随机推荐

  1. 执行shell脚本提示“-bash: ./checkP.sh: /bin/sh^M: bad interpreter: No such file or directory”解决方法

    在windows机器下新建了一个shell脚本如下

  2. jenkins(2): jenkins定时构建项目

    参考:http://blog.sina.com.cn/s/blog_b5fe6b270102v7xo.html https://blog.csdn.net/xueyingqi/article/deta ...

  3. python--实践--模拟浏览器(http)登陆

    #方法一:直接使用coookies登陆,此方法需要提前在浏览器中使用账号密码登陆后,获取浏览器中的cookies,在构造的请求中携带这个cookies(缺点是有时效性). #方法二:通过账号密码(Fr ...

  4. Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第十一集之安装FastDFS】

    1,安装FastDFS之前,先安装libevent工具包. yum -y install libevent 2,安装libfastcommonV1.0.7工具包.有可能找到新版本的zip压缩包:lib ...

  5. tomcat多端口配置

    <?xml version="1.0" encoding="UTF-8"?> <Server port="8005" sh ...

  6. 用greenlet实现协程消费者生产者

    代码: from greenlet import greenlet import random def pro(): 生产者 while True: item = random.randint(0,9 ...

  7. fastadmin默认的controller已实现的方法

    fastadmin控制器 <?php namespace app\admin\controller\peizi; use app\common\controller\Backend; /** * ...

  8. TF之BN:BN算法对多层中的每层神经网络加快学习QuadraticFunction_InputData+Histogram+BN的Error_curve

    # 23 Batch Normalization import numpy as np import tensorflow as tf import matplotlib.pyplot as plt ...

  9. linux命令基础三

    使用cat命令进行文件的纵向合并使用cat命令实现文件的纵向合并: 例如:使用cat命令将baby.age.baby.kg和baby.sex这三个文件纵向合并为baby文件的方法:cat baby.a ...

  10. position 属性的值的比较

    可取的四个值:static/relative/absolute/fixed static:默认值,top/right/bottom/left 无作用,z-index无效 relative:相对于原来的 ...