Hallo!
Ich nutze Visual Basic 6.
Ich suche nach einem Weg, eine Liste aller freigegebenen Ordner eines PCs in einem LAN anzuzeigen. Sprich:
Ich habe z.B. rechts eine ListBox mit Computernamen und wenn ich einen auswähle wird mir rechts in einer Directory-Box seine Freigabe angezeigt.
Wie wird das gemacht?
Links zu diesem Thema wären auch toll.
Danke im Voraus.
PCO
Programmieren - alles kontrollieren 4.941 Themen, 20.715 Beiträge
Wenn Du meinst, daß Du diese Ordner erst mal als Laufwerk anbinden möchtest, ist das kein Problem. Dann kannst Du da wie auf lokale Festplatten zugreifen (natürlich was langsamer).
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
Private Declare Function WNetGetConnection Lib "mpr" Alias "WNetGetConnectionA" ( _
ByVal strLaufwerk As String, _
ByVal strFreigabe As String, _
intFreigabe As Long _
) As Long
Private Type tNETRESOURCE
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
Private Const RESOURCETYPE_DISK = &H1
Public Function Trenne_Freigabe(strLaufwerk As String) As Integer
' Diese Funktion trennt eine Freigabe.
' Sollte es nicht klappen, wird vbNo zurückgegeben, sonst vbYes
' Speicher reservieren
Dim ReturnValue As Long
' Rückgabewert setzen
Trenne_Freigabe = vbNo
' Wenn ein Laufwerk übergeben wurde, dann weitermachen
If (Len(strLaufwerk) = 2) Then
' Verbindung kappen
ReturnValue = WNetCancelConnection2(strLaufwerk, 0, 0)
' Wenn erfolgreich, dann Rückgabewert neu setzen
If (ReturnValue = 0) Then
Trenne_Freigabe = vbYes
End If
End If
End Function
Public Function Verbinde_Freigabe(strLaufwerk As String, strFreigabe As String, Optional strUserName As String, Optional strUserPassWd As String) As Integer
' Diese Funktion verbindet eine Freigabe mit dem lokalen Rechner
' Ist die Funktion erfolgreich, wird vbYes zurückgegeben, sonst vbNo
' Speicher reservieren
Dim NetRes As tNETRESOURCE
Dim ReturnValue As Long
' Rückgabewert setzen
Verbinde_Freigabe = vbNo
' Wenn ein Laufwerk übergeben wurde, dann weitermachen
If (Len(strLaufwerk) = 2) Then
' Resourcen setzen
NetRes.lpRemoteName = strFreigabe
NetRes.lpLocalName = strLaufwerk
NetRes.dwType = RESOURCETYPE_DISK
' Verbindung herstellen
ReturnValue = WNetAddConnection2(NetRes, strUserName, strUserPassWd, 0)
' Wenn erfolgreich, dann Rückgabewert neu setzen
If (returnvalue = 0) Then
Verbinde_Freigabe = vbYes
End If
End If
End Function
Public Sub Lese_Netzlaufwerke()
' Speicher reservieren
Dim ReturnValue As Long
Dim sNetname As String
Dim iLen As Long
Dim iIdx As Integer
Dim sDrive As String
' Alle Netzwerkverbindungen anzeigen
For iIdx = Asc("D") To Asc("Z")
sDrive = Chr$(iIdx) & ":"
sNetname = Space$(255)
iLen = Len(sNetname)
ReturnValue = WNetGetConnection(sDrive, sNetname, iLen)
If (ReturnValue = 0) Then
Debug.Print sDrive & Left(sNetname, iLen)
End If
Next iIdx
End Function