VB.Net-Forum - Beitragsübersicht -
ThemaV10: 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 ]
Antworten
V10: Netzlaufwerke anzeigen - Jürgen 18. September 2015 um 17:33:13
Re: Netzlaufwerke anzeigen - Alex 18. September 2015 um 19:11:26
Re: Netzlaufwerke anzeigen - Jürgen 20. September 2015 um 16:09:25

Ihre Antwort
(Nick-)Name   Wichtige Informationen zur Namensangabe
E-Mail (opt.)  Wichtige Informationen zur Angabe einer eMail-Adresse
Thema   Wichtige Informationen zur Angabe eines Themas
Betrifft (IDE)  VB 2010
Ihre Antwort
Smilies
Mehr...
FettKursivUnterstrichen   Übersicht der Tipp-KürzelÜbersicht der Projekt-KürzelÜbersicht der Bücher-Kürzel 
Homepage
Titel
Root-Smilies              
             
             
[ Zurück zum VB.Net-Forum | Forum-Archiv | Forum-Hilfe | Chat ]

Zum Seitenanfang

Startseite | VB-/VBA-Tipps | Projekte | Tutorials | API-Referenz | Komponenten | Bücherecke | Gewinnspiele | VB.Net | VB/VBA-Forum | DirectX | DirectX-Forum | Chat | Ausschreibungen | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Sonntag, 13. Dezember 2015