- 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命令网上好搜索呢!
或者是通过修改注册表。实现打开或者关闭,无论使用使用什么和系统有关的都需要权限,管理员的权限。如果系统没有管理员的权限。肯定是兼容系统的。。