VB编写的程序加入防火墙的例外中

 在工程中要先引入:

NetCon 1.0 Type Library

NetFwTypeLib

 

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

 

转载于:https://www.cnblogs.com/interdrp/p/10778335.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值