在工程中要先引入:

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. C# 之 向服务器上传资源

    首先写客服端,winform 应用 或者 WPF 应用 模拟一个post提交: /// <summary> /// 将本地文件上传到指定的服务器(HttpWebRequest方法) /// ...

  2. python基础——循环(for,while,break,continue)

    for while . break:退出循环 continue:退出本次循环 例子 for i range(0,101,2): print(i) --------------------------- ...

  3. tomcat-会话绑定

    会话保存 1) session  sticky source_ip                         原地址绑定 nginx: ip_hash haproxy: source lvs: ...

  4. thinkphp 3.1.3 配置debug开启报错

    今天配置了一下thinkphp3.1.3 报错 无法加载模块:index 错误位置 FILE: D:\phpStudy\WWW\wwqq\thinkphp\Common\functions.php L ...

  5. iis url rewrite http->https non-www->www

    <system.webServer> <rewrite> <rules> <rule name="Redirect abc.com to www&q ...

  6. 20165235 学习基础和C语言基础调查

    20165235 学习基础和C语言基础调查 首先第一个问题:你有什么技能比大多人(超过90%以上)更好?感觉很难回答这种问题,其实我对很多东西挺感兴趣的,如果非要拿出一种比较突出的技能的话我感觉就是象 ...

  7. 5、Qt Project之键盘数据监控

    键盘数据监控: 同样的,键盘的检测和鼠标的情形很类似,都是以QWidget为基类的工程 Step1:在UI设计中添加该模块需要使用的相关组件,如下所示: <width>141</wi ...

  8. Maya cmds pymel 快速选择hard edges(硬边)

    Maya cmds pymel 快速选择hard edges(硬边) import maya.cmds as cmds cmds.polySelectConstraint(m = 3, t = 0x8 ...

  9. ECMAScript 原始类型

    ---恢复内容开始--- ECMAScript 有 5 种原始类型(primitive type),即 Undefined.Null.Boolean.Number 和 String. 1.typeof ...

  10. Farewell Party-构造

    Farewell Party 思路 : 转换思路 ,有 a [ i ] 个不相等的 ,那么至少得有 n - a [ i ]个与它相等的. 但是有可能与它拥有相同数目的有很多. 但是为了能够最终 分配成 ...