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
Collapse
|
Copy Code
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