Eines von den Themen, die bisher eher weniger in der Tipp
DB vorkamen, sind Tipps zu DFÜ / RAS. Und so wollen wir das Manko mit den nächsten beiden
Tipps etwas abstellen. Im folgenden Tipp soll es um das Trennen aller geöffneten RAS
Verbindungen gehen.
1. Allgemein/Deklarationen
Private Declare Function RasEnumConnections Lib "rasapi32.DLL" Alias
"RasEnumConnectionsA" (lpRasConn As Any, lpcb As Long, lpcConnections As Long)
As Long
Private Declare Function RasHangUp Lib "rasapi32.DLL" Alias
"RasHangUpA" (ByVal hRasConn As Long) As Long
Const RAS_MAXENTRYNAME As Integer = 256
Const RAS_MAXDEVICETYPE As Integer = 16
Const RAS_MAXDEVICENAME As Integer = 128
Const RAS_RASCONNSIZE As Integer = 412
Const ERROR_SUCCESS = 0
Private Type RasConn
dwSize As Long
hRasConn As Long
szEntryName(RAS_MAXENTRYNAME) As Byte
szDeviceType(RAS_MAXDEVICETYPE) As Byte
szDeviceName(RAS_MAXDEVICENAME) As Byte
End Type
2. Allgemein/TerminateRAS
Sub TerminateRAS()
Dim i As Long
Dim RasConn(255) As RasConn 'max 255 Verbindungen
Dim structSize As Long
Dim ConnectionsCount As Long
Dim ret As Long
'Füllen der RasConn Struktur mit den Daten aller offenen RAS Verbindungen
RasConn(0).dwSize = RAS_RASCONNSIZE
structSize = RAS_MAXENTRYNAME * RasConn(0).dwSize
ret = RasEnumConnections(RasConn(0), structSize, ConnectionsCount)
'Beenden aller offenen RAS Verbindungen
If ret = ERROR_SUCCESS Then
For i = 0 To ConnectionsCount - 1
ret = RasHangUp(RasConn(i).hRasConn)
Next
End If
End Sub
3. Funktionsaufruf
TerminateRAS
Wenn Sie ermitteln wollen, wieviel Verbindungen geöffnet sind,
fragen Sie einfach ConnectionsCount ab. |