在工程中要先引入:

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. Flink运行在yarn上

    在一个企业中,为了最大化的利用集群资源,一般都会在一个集群中同时运行多种类型的 Workload.因此 Flink 也支持在 Yarn 上面运行: flink on yarn的前提是:hdfs.yar ...

  2. 使用java操作kudu

    使用maven导入kudu <dependency> <groupId>org.apache.kudu</groupId> <artifactId>ku ...

  3. C++实现--最大公因数和最小公倍数

    一丶 最大公因数求法: 辗转相除法(也称欧几里得算法)原理:   二丶最小公倍数求法:两个整数的最小公倍数等于两整数之积除以最大公约数   C++ 代码实现 #include <iostream ...

  4. 工作记录之 [ python请求url ] v s [ java请求url ]

    背景: 模拟浏览器访问web,发送https请求url,为了实验需求需要获取ipv4数据包 由于不做后续的内容整理(有内部平台分析),故只要写几行代码请求发送https请求url列表中的url即可 开 ...

  5. F - Tmutarakan Exams URAL - 1091 -莫比乌斯函数-容斥 or DP计数

    F - Tmutarakan Exams 题意 : 从 < = S 的 数 中 选 出 K 个 不 同 的 数 并 且 gcd > 1 .求方案数. 思路 :记 录 一 下 每 个 数 的 ...

  6. BZOJ-6-2460: [BeiJing2011]元素-线性基

    链接 :https://www.lydsy.com/JudgeOnline/problem.php?id=2460 思路 :线性基不唯一,所以排序 进行贪心选择,价值最大的线性基, #include& ...

  7. 使用Log4j日志处理

    Springboot日志默认使用的是logback,本文将介绍将springboot项目日志修改为log4j. 首先要将默认的日志依赖排除,然后引用log4j,pom文件代码如下: <?xml ...

  8. Alpha(5/10)

    鐵鍋燉腯鱻 项目:小鱼记账 团队成员 项目燃尽图 冲刺情况描述 站立式会议照片 各成员情况 团队成员 学号 姓名 git地址 博客地址 031602240 许郁杨 (组长) https://githu ...

  9. BZOJ.4199.[NOI2015]品酒大会(后缀自动机 树形DP)

    BZOJ 洛谷 后缀数组做法. 洛谷上SAM比SA慢...BZOJ SAM却能快近一倍... 只考虑求极长相同子串,即所有后缀之间的LCP. 而后缀的LCP在后缀树的LCA处.同差异这道题,在每个点处 ...

  10. Java并发编程(九)-- 进程饥饿和公平锁

    上一章已经提到“如果一个进程被多次回滚,迟迟不能占用必需的系统资源,可能会导致进程饥饿”,本文我们详细的介绍一下“饥饿”和“公平”. Java中导致饥饿的原因 在Java中,下面三个常见的原因会导致线 ...