Du könntest doch einfach die DFÜ verbindung trennen. Also eine Code schreiben( dies könntest du auch an die cmd Datei schicken und die macht das. Ich habe hier nur ein Code für VB6 musst ihn halt umgestalten.
Beispiel :
Option Explicit
'Deklaration: Globale Form API-Konstanten
Private Const RAS_MaxDeviceType As Long = 16
Private Const RAS95_MaxDeviceName As Long = 128
Private Const RAS95_MaxEntryName As Long = 256
'Deklaration: Globale Form API-Typen
Private Type RASCONN95
dwSize As Long
hRasConn As Long
szEntryName(RAS95_MaxEntryName) As Byte
szDeviceType(RAS_MaxDeviceType) As Byte
szDeviceName(RAS95_MaxDeviceName) As Byte
End Type
Private Type RASENTRYNAME95
dwSize As Long
szEntryName(RAS95_MaxEntryName) As Byte
End Type
'Deklaration: Globale Form API-Funktionen
Private Declare Function RasEnumConnections Lib "RasApi32.DLL" Alias "RasEnumConnectionsA" ( _
lprasconn As Any, lpcb As Long, lpcConnections As Long) As Long
Private Declare Function RasEnumEntries Lib "RasApi32.DLL" Alias "RasEnumEntriesA" ( _
ByVal reserved As String, ByVal lpszPhonebook As String, lprasentryname As Any, _
lpcb As Long, lpcEntries As Long) As Long
Private Declare Function RasHangUp Lib "RasApi32.DLL" Alias "RasHangUpA" ( _
ByVal hRasConn As Long) As Long
'Deklaration: Globale Form-Variablen
Dim lngRASCon As Long
Dim strDFUEName As String
Private Sub Command1_Click()
'Programm beenden falls keine DFÜ-Verbindung gefunden wurde
If List1.ListIndex = -1 Then
Exit Sub
End If
'DFÜ-Verbindung starten
strDFUEName = List1.List(List1.ListIndex)
Shell "rundll32.exe " & Chr(34) & "rnaui.dll,RnaDial " & strDFUEName & Chr(34)
SendKeys "{ENTER}", True
SendKeys "{ENTER}", True
Me.SetFocus
End Sub
Private Sub Command2_Click()
Call HangUp(strDFUEName)
End Sub
Private Sub Form_Load()
'Deklaration: Lokale Prozedur-Variablen
Dim i As Long
Dim lngBuffer As Long
Dim lngEntries As Long
Dim strRASConName As String
Dim udtRASCon(255) As RASENTRYNAME95
'Control-Eigenschaften initialisieren
Command1.Caption = "Verbinden"
Command2.Caption = "Trennen"
udtRASCon(0).dwSize = 264
lngBuffer = 256 * udtRASCon(0).dwSize
'DFÜ-Verbindungen ermitteln
Call RasEnumEntries(vbNullString, vbNullString, udtRASCon(0), lngBuffer, lngEntries)
'DFÜ-Verbindungen in Liste anzeigen
For i = 0 To lngEntries - 1
strRASConName = StrConv(udtRASCon(i).szEntryName(), vbUnicode)
List1.AddItem Left$(strRASConName, InStr(strRASConName, vbNullChar) - 1)
Next i
'Erste DFÜ-Verbindung in Liste markieren, falls eine vorhanden ist
If List1.ListCount > 0 Then
List1.ListIndex = 0
End If
End Sub
Private Sub HangUp(ByVal strVerbindung As String)
'Deklaration: Lokale Prozedur-Variablen
Dim i As Long
Dim lngBuffer As Long
Dim lngEntries As Long
Dim lngResult As Long
Dim strRASConName As String
ReDim udtRASCon(255) As RASCONN95
'DFÜ-Verbindungen ermitteln
udtRASCon(0).dwSize = 412
lngBuffer = 256 * udtRASCon(0).dwSize
lngResult = RasEnumConnections(udtRASCon(0), lngBuffer, lngEntries)
For i = 0 To lngEntries - 1
strRASConName = StrConv(udtRASCon(i).szEntryName(), vbUnicode)
strRASConName = Left$(strRASConName, InStr(strRASConName, vbNullChar) - 1)
'DFÜ-Verbindung beenden
If strRASConName = strVerbindung Then
lngRASCon = udtRASCon(i).hRasConn
lngResult = RasHangUp(lngRASCon)
End If
Next i
End Sub
Oder ein Anderes Beispiel
' Steuerelement: Festplattenauswahlliste "Drive1"
' Steuerelement: Schaltfläche "Command2"
' Steuerelement: Schaltfläche "Command1"
' Steuerelement: Beschriftungsfeld "Label1"
Option Explicit
'Deklaration: Globale Form API-Konstanten
Private Const RESOURCETYPE_DISK As Long = &H1
'Deklaration: Globale Form API-Typen
Private Type NETRESOURCE
dwScope As Long
dwType As Long
dwDisplayType As Long
dwUsage As Long
lpLocalName As String
lpRemoteName As String
lpComment As String
lpProvider As String
End Type
'Deklaration: Globale Form API-Funktionen
Private Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" ( _
lpNetResource As NETRESOURCE, ByVal lpPassword As String, ByVal lpUserName As String, _
ByVal dwFlags As Long) As Long
Private Declare Function WNetCancelConnection2 Lib "mpr.dll" Alias "WNetCancelConnection2A" ( _
ByVal lpName As String, ByVal dwFlags As Long, ByVal fForce As Long) As Long
'Deklaration: Globale Form-Variablen
Dim strUserName As String
Dim strUserPassword As String
Dim udtNetzResource As NETRESOURCE
Private Sub Command1_Click()
'Deklaration: Lokale Prozedur-Variablen
Dim lngResult As Long
lngResult = WNetAddConnection2(udtNetzResource, strUserPassword, strUserName, 0)
If lngResult = 0 Then
Label1.Caption = "Verbunden."
Drive1.Drive = udtNetzResource.lpLocalName
Drive1.Refresh
Else
Label1.Caption = "Verbindung nicht möglich."
End If
End Sub
Private Sub Command2_Click()
'Deklaration: Lokale Prozedur-Variablen
Dim lngResult As Long
lngResult = WNetCancelConnection2(udtNetzResource.lpLocalName, 0, 0)
If lngResult = 0 Then
Label1.Caption = "Getrennt"
Else
Label1.Caption = "Trennung nicht möglich."
End If
Drive1.Refresh
End Sub
Private Sub Form_Load()
'Control-Eigenschaften initialisieren
Command1.Caption = "Verbinden"
Command2.Caption = "Trennen"
'R1 = Rechnername, C_SYSTEM = Name des zuzuweisenden Laufwerks
udtNetzResource.lpRemoteName = "\\R1\I_CSS-WORK"
'z: ist der neue Laufwerksname (gegebenfalls ändern)
udtNetzResource.lpLocalName = "z:"
'Username & Passwort (anhängig vom Freigabestatus des Laufwerks). Inhalt ist bestenfalls egal
strUserName = "Goetz"
strUserPassword = "holla"
udtNetzResource.dwType = RESOURCETYPE_DISK
Label1.Caption = ""
End Sub
Eins von beiden sollte gehen.
Musst es halt noch umändern, wenn ich zeit habe kann ich dies auch tuhn.
P.S. Sry das ich so spät geantwortet habe, mein PC war kaputt.
Gruß Bagplatt
______________