| Folgender Code wurde von Konrad Doblander gepostet: Private Sub Obtain_And_Change_ICF_Status(ByVal strConnection As String)
On Error Goto ErrorHandler
Dim SharingMgr As Object
Dim EachConnection As Object
Dim ConnectionProps As Object
Dim item As Object
Dim Previous_ICF_State As String
Set SharingMgr = CreateObject("HNetCfg.HNetShare.1")
If (Not (SharingMgr Is Nothing)) Then
For Each item In SharingMgr.EnumEveryConnection
Set EachConnection = _
SharingMgr.INetSharingConfigurationForINetConnection(item)
Set ConnectionProps = SharingMgr.NetConnectionProps(item)
If (ConnectionProps.Name = strConnection) Then
If EachConnection.InternetFirewallEnabled Then
EachConnection.DisableInternetFirewall
Previous_ICF_State = _
"ICF war aktiviert und ist jetzt deaktiviert."
Else
EachConnection.EnableInternetFirewall
Previous_ICF_State = _
"ICF war deaktiviert und ist jetzt aktiviert."
End If
Exit For
End If
Next item
End If
ExitSub:
If (Len(Previous_ICF_State) <> 0) Then MsgBox _
Previous_ICF_State
Exit Sub
ErrorHandler:
Select Case Err.Number
Case 55 Close #1
Case 70 Call MsgBox("Zugriff aufgrund fehlender Rechte verweigert.", _
vbInformation Or vbOKOnly)
Case 429 Call MsgBox("Komponente kann nicht erstellt werden.", _
vbInformation Or vbOKOnly)
Case Else
End Select
Resume Next
End SubListing 1: Status der Firewall von Windows XP ermitteln Verschiedentlich wurde gesagt, daß dieser Quelltext nicht oder nicht richtig läuft. coni hatte deshalb einen Quelltext gepostet, der fehlerfrei, jedoch ohne jede Fehlerbehandlung, arbeitet: Dim XPFirewall As Object
Dim XPFirewallpolicy As Object
Set XPFirewall = CreateObject("HNetCfg.FwMgr")
Set XPFirewallpolicy = XPFirewall.LocalPolicy.CurrentProfile
XPFirewallpolicy.FirewallEnabled = FalseListing 2: Status der Firewall von Windows XP neu setzen Nachtrag von Florian Rittmeier: In der Microsoft Knowledge Base gibt es einige Scripte, die den Umgang mit der Firewall-API demonstrieren. |