|
VB.Net-Forum - Beitragsübersicht - |
|
Thema | V10: Netzlaufwerke anzeigen |
Von |
Jürgen |
E-Mail |
newjupiter@gmx.de |
Datum |
18. September 2015 um 17:33:13 |
Frage |
Hallo Zusammen,
habe Probleme die Netzlaufwerek anzuzeigen.
Mein Code, Private Sub Button4_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click Try 'Zone 1 ' Beispiel: 'Alle localen ListBox1.Items.Clear() For Each Drive As IO.DriveInfo In IO.DriveInfo.GetDrives 'MsgBox("Fix") If Drive.DriveType = IO.DriveType.Fixed Then If Drive.IsReady Then 'Laufwekrsbuchstabe und VolumeLabel anzeigen ListBox1.Items.Add(Drive.Name & " [" & Drive.VolumeLabel & "]") Else 'Laufwerksbuchstabe anzeigen ListBox1.Items.Add(Drive.Name & " [nicht bereit]") End If End If Next Catch ex As Exception MsgBox(ex.Message & " Zone 1") End Try
Try ' ' Beispiel: 'Alle Netzwerke ListBox2.Items.Clear() For Each Drive As IO.DriveInfo In IO.DriveInfo.GetDrives If Drive.DriveType = IO.DriveType.Network Then 'MsgBox("Hallo Netz") If Drive.IsReady Then 'Laufwekrsbuchstabe und VolumeLabel anzeigen ListBox2.Items.Add(Drive.Name & " [" & Drive.VolumeLabel & "]") Else 'Laufwerksbuchstabe anzeigen ListBox2.Items.Add(Drive.Name & " [nicht bereit]") End If End If Next
Catch ex As Exception MsgBox(ex.Message & " Zone 2") End Try
End Sub Die Localen LW werden erkannt und angezeigt, jedoch kein Netzlaufwerk.
Die Zeile If Drive.DriveType = IO.DriveType.Network Then gibt keine Netzwerk zurück.
Kann mir Jemand helfen?
OS ist Win 7
mfg Jürgen |
|
Antwort: |
Von |
Alex |
Datum |
18. September 2015 um 19:11:26 |
Antwort |
Ich habe für eines meiner Tools mal etwas ähnliches benötigt und habe es dann über API gelöst, da mir teilweise Die externe Platte mal als Wechsel und auch als Lokale Root Platte angezeigt wurde. Habe es etwas angepasst für eine Listbox das du testen kannst. Nur noch den Sub Aufrufen durch einen Button und es sollte laufen. ' Rückgabewerte für GetDriveType: Private Const DRIVE_UNKNOWN = 0 ' unbekannter Laufwerkstyp Private Const DRIVE_NO_ROOT_DIR = 1 ' kein Hauptverzeichnis Private Const DRIVE_REMOVABLE = 2 ' Wechselmedium Private Const DRIVE_FIXED = 3 ' Festplatte Private Const DRIVE_REMOTE = 4 ' Netzwerklaufwerk Private Const DRIVE_CDROM = 5 ' CD/DVD Private Const DRIVE_RAMDISK = 6 ' RAM-Disk Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal RootDir As String) As Integer Public Sub FillListWithDrives() ListBox1.Items.Clear() Dim DriveType As Integer Dim i As Integer = 0 For Each Drive As String In System.Environment.GetLogicalDrives() Dim checkDriveStatus As New DriveInfo(Drive) DriveType = GetDriveType(Drive) With ListBox1 Select Case DriveType Case DRIVE_UNKNOWN ' unbekannter Laufwerkstyp If checkDriveStatus.IsReady Then .Items.Add("Laufwerk Nr. " & i & " Pfad : " & Drive & " Typ : Unbekannt ist bereit.") i = i + 1 Else .Items.Add("Laufwerk Nr. " & i & " Pfad : " & Drive & " Typ : Unbekannt ist bereit.") i = i + 1 End If Case DRIVE_NO_ROOT_DIR ' kein Hauptverzeichnis If checkDriveStatus.IsReady Then .Items.Add("Laufwerk Nr. " & i & " Pfad : " & Drive & " Typ : Hauptverzeichnisloses ist bereit.") i = i + 1 Else .Items.Add("Laufwerk Nr. " & i & " Pfad : " & Drive & " Typ : Hauptverzeichnisloses ist nicht bereit.") i = i + 1 End If Case DRIVE_REMOVABLE ' Wechseldatenträger (Diskette, ZIP,...) If checkDriveStatus.IsReady Then .Items.Add("Laufwerk Nr. " & i & " Pfad : " & Drive & " Typ : Wechselmedium ist bereit.") i = i + 1 Else .Items.Add("Laufwerk Nr. " & i & " Pfad : " & Drive & " Typ : Wechselmedium ist nicht bereit.") i = i + 1 End If Case DRIVE_FIXED ' Festplatte If checkDriveStatus.IsReady Then .Items.Add("Laufwerk Nr. " & i & " Pfad : " & Drive & " Typ : Festplatte ist bereit.") i = i + 1 Else .Items.Add("Laufwerk Nr. " & i & " Pfad : " & Drive & " Typ : Festplatte ist nicht bereit.") i = i + 1 End If Case DRIVE_REMOTE ' Netzwerklaufwerk If checkDriveStatus.IsReady Then .Items.Add("Laufwerk Nr. " & i & " Pfad : " & Drive & " Typ : Netzwerk ist bereit.") i = i + 1 Else .Items.Add("Laufwerk Nr. " & i & " Pfad : " & Drive & " Typ : Netzwerk ist nicht bereit.") i = i + 1 End If Case DRIVE_CDROM ' CD-ROM/DVD-ROM/Brenner If checkDriveStatus.IsReady Then .Items.Add("Laufwerk Nr. " & i & " Pfad : " & Drive & " Typ : CD/DVD ist bereit.") i = i + 1 Else .Items.Add("Laufwerk Nr. " & i & " Pfad : " & Drive & " Typ : CD/DVD ist nicht bereit.") i = i + 1 End If Case DRIVE_RAMDISK ' RAM-Disk If checkDriveStatus.IsReady Then .Items.Add("Laufwerk Nr. " & i & " Pfad : " & Drive & " Typ : RAM ist bereit.") i = i + 1 Else .Items.Add("Laufwerk Nr. " & i & " Pfad : " & Drive & " Typ : RAM ist nicht bereit.") i = i + 1 End If End Select End With Next Drive End Sub Wenn deine Netzlaufwerke im Explorer gelistet werden tauchen sie hiermit auch als solche auf. (Evtl Anpassungen nötig, da ich mittlerweile VS2015 nutze und nicht 2010)
Gruß Alex |
|
[ Antwort schreiben | Zurück zum VB.Net-Forum | Forum-Hilfe ] |
|
Letzte Aktualisierung: Sonntag, 13. Dezember 2015 |
|