vb.net判断防火墙打开还是关闭C#源码

  • A+
所属分类:vb.net

在我学习中,自己实际开发中要用到防火墙,要关闭防火墙,首选需要的是判断防火墙是打开还是关闭。网上搜索了很多,自己也做个笔记,以后也好查询。

直接上代码例子。代码都是亲测。

第一步:新建工程部说了。

在工程中先添加引用FirewallAPI.dll这个文件,文件在C:\Windows\SysWOW64 或C:\Windows\System32 目录里面,根据自己应有来设置。我的是32位应有,我选择的是C:\Windows\System32。

第二步:在最上面导入空间名称 Imports NetFwTypeLib

第三步:封装一个函数,代码如下

 Private Shared Function firewall() As NetFwTypeLib.INetFwMgr
Const CLSID_FIREWALL_MANAGER As String = "{304CE942-6E39-40D8-943A-B913C40C9CD4}"
Dim objType As Type = Type.GetTypeFromCLSID(New Guid(CLSID_FIREWALL_MANAGER))
Return TryCast(Activator.CreateInstance(objType), NetFwTypeLib.INetFwMgr)
End Function
复制

第四步:调用,实践

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim h1 As INetFwMgr = firewall()
If h1.LocalPolicy.CurrentProfile.FirewallEnabled = True Then
MsgBox("防火墙开启状态")
Else
MsgBox("防火墙关闭状态")
End If
End Sub
复制

要想打开或者关闭,直接调用bat命令,比较好,毕竟bat命令网上好搜索呢!

或者是通过修改注册表。实现打开或者关闭,无论使用使用什么和系统有关的都需要权限,管理员的权限。如果系统没有管理员的权限。肯定是兼容系统的。。

 

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: