在工程中要先引入:

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. linux查看文件的后几行

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAu4AAABiCAIAAACAksEXAAAZuUlEQVR4nO2dzdmzuq6G0wRV0ARNMM

  2. 通过java代码进行impala和kudu的对接

    对于impala而言,开发人员是可以通过JDBC连接impala的,有了JDBC,开发人员可以通过impala来间接操作kudu: maven导包: <!-- https://mvnreposi ...

  3. 空间分析工具:GIS

    1.数据空间 数据空间是指用来表示空间实体的的位置.几何特征及其属性特征的数据. 位置:经纬度.地址.相对位置: 几何特征:点.线.面.形状: 属性特征:面积.周长.人口.经济等属性. POI数据.O ...

  4. Machine Learning 算法可视化实现2 - Apriori算法实现

    目录 关联分析 Apriori原理 Apriori算法实现 - 频繁项集 Apriori算法实现 - 从频繁项集挖掘关联规则 一.关联分析 关联分析是一种在大规模数据集中寻找有趣关系的任务. 这些关系 ...

  5. js實現彈窗

    strSucc += "<br/><font color=\"red\">提醒您!在預設狀態下,Google Chrome 會阻止彈出式視窗自動在 ...

  6. for循环的简介及break和continue的区别

    break和continue都是用来控制循环结构的,主要是停止循环. 1.break 有时候我们想在某种条件出现的时候终止循环而不是等到循环条件为false才终止. 这是我们可以使用break来完成. ...

  7. Jenkins使用遇到的问题总结

    学新技能最方便的就是在网上找教程了,我找到一个还不错的易百教程 Jenkins教程 别看教程写了一堆,其实真正用到的没多少.后面的自动化测试,服务器维护啥的,等用到的时候再深入研究吧 No1: 按照教 ...

  8. sqlserver日志文件

    过程:   昨天下午数据库奔溃,表现就是连不上数据库了,重启服务之后好了. 查询日文文件 , “Autogrow of file 'XX_log' in database 'XX' was cance ...

  9. Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)

    Android XML shape 标签使用详解   一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景. ...

  10. Java8中的 lambda 和Stream API

    前言 ​ 由于项目中用到了比较多有关于 Java8 中新的东西,一开始自己只是会写,但是写起来不太顺,然后就在网上找到了一个很好的关于Java8新特性的视频,所以就进行了学习了一下,以下是自己对 la ...