Programmatically disable/enable Windows firewall
By 24 Jan 2007
,Introduction
This article teaches you how to disable and enable your Windows firewall programmatically.
Setup
- Create a new Windows Application project.
- Click on Project->Add Reference and add the following files:
- Click Browse tab -> Add C:\windows\system32\Hnetcfg.dll.
- Click COM tab -> Add NetFwTypeLib.
Requirements
Currently, this only works with Windows XP SP2. If you need support for this in Vista, add Wfapi.dll.
Source
Imports System Imports NetFwTypeLib ' Provides access to the firewall settings for a computer. Public Function GetFwMgr() As NetFwTypeLib.INetFwMgr Dim oINetFwMgr As NetFwTypeLib.INetFwMgr Dim NetFwMgrObject As Object Dim NetFwMgrType As Type ' Use the COM CLSID to get the associated .NET System.Type NetFwMgrType = Type.GetTypeFromCLSID( _ New Guid("{304CE942-6E39-40D8-943A-B913C40C9CD4}")) ' Create an instance of the object NetFwMgrObject = Activator.CreateInstance(NetFwMgrType) oINetFwMgr = NetFwMgrObject Return oINetFwMgr End Function ' Provides access to the firewall settings profile. Public Function GetProfile() As NetFwTypeLib.INetFwProfile Dim oINetPolicy As NetFwTypeLib.INetFwPolicy Dim oINetFwMgr As NetFwTypeLib.INetFwMgr oINetFwMgr = GetFwMgr() oINetPolicy = oINetFwMgr.LocalPolicy Return oINetPolicy.CurrentProfile End Function ' Enable windows firewall. Public Sub ActivateFirewall() Dim fwProfile As NetFwTypeLib.INetFwProfile fwProfile = GetProfile() fwProfile.FirewallEnabled = True End Sub ' Disable windows firewall. Public Sub DisableFirewall() Dim fwProfile As NetFwTypeLib.INetFwProfile fwProfile = GetProfile() fwProfile.FirewallEnabled = False End Sub ' Firewall state || False = Disabled - True = Enabled. Public Function FirewallEnabled() As Boolean Dim fwProfile As NetFwTypeLib.INetFwProfile fwProfile = GetProfile() Return fwProfile.FirewallEnabled End Function ' Enable firewall on Form_Load. Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load If FirewallEnabled() = False Then ActivateFirewall() Else DisableFirewall() End If MessageBox.Show("Firewall enabled: " & FirewallEnabled()) End Sub
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)