vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2018
 
zurück
Rubrik: Dateisystem · Laufwerke   |   VB-Versionen: VB2005, VB200824.11.08
Erkennen, wenn Wechseldatenträger angeschlossen/entfernt werden

Dieser Code zeigt, wie Sie prüfen können, ob neue Wechseldatenträger angeschlossen wurden (bspw. USB-Sticks) bzw. vorhandene Wechseldatenträger wieder entfernt wurden.

Autor:   Dieter OtterBewertung:     [ Jetzt bewerten ]Views:  17.727 
www.tools4vb.deSystem:  Win2k, WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

Wird ein neuer Wechseldatenträger angeschlossen bzw. wieder entfernt sendet Windows die Message WM_DEVICECHANGE. Wenn man nun gezielt das System auf diese Nachricht abhört, kann man sehr leicht prüfen, ob bspw. ein USB-Stick am System angeschlossen bzw. wieder entfernt wurde.

Erstellen Sie ein neues Projekt und platzieren auf die Form eine ListBox. In dieser ListBox sollen sowohl neu erkannte Datenträger, als auch Datenträger, die entfernt wurden, angezeigt werden.

Imports System.IO
Public Class Form1
 
  ' Liste aller aktuell vorhandenen Laufwerke
  Private currentDrives As New List(Of String)
 
  ' Windows-Message Konstante
  Private Const WM_DEVICECHANGE As Integer = &H219
  Private Sub Form1_Load(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles MyBase.Load
 
    ' Liste aller aktuell vorhandenen Laufwerke ermitteln
    For Each d As DriveInfo In DriveInfo.GetDrives
      currentDrives.Add(d.RootDirectory.FullName)
    Next
  End Sub
  ' Windows-Messages abhorchen
  Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
    ' Auf Laufwerksänderungen im System reagieren
    If m.Msg = WM_DEVICECHANGE Then
      ' neue Laufwerksliste erstellen
      Dim newDrives As New List(Of String)
      For Each d As DriveInfo In DriveInfo.GetDrives
        newDrives.Add(d.RootDirectory.FullName)
      Next
 
      ' prüfen, ob neue Laufwerke hinzugekommen sind
      For Each s As String In newDrives
        If Not currentDrives.Contains(s) Then
          ' neues Laufwerk gefunden
          ListBox1.Items.Add("Neu: " & s)
        End If
      Next
 
      ' jetzt prüfen, ob Laufwerke entfernt wurden
      For Each s As String In currentDrives
        If Not newDrives.Contains(s) Then
          ' Laufwerk wurde entfernt
          ListBox1.Items.Add("Entfernt: " & s)
        End If
      Next
 
      ' Laufwerks-Array aktualisieren
      currentDrives = newDrives
    End If
    MyBase.WndProc(m)
  End Sub
End Class

Starten Sie das Projekt und stecken einen USB-Stick ein. In der ListBox sollte unmittelbar danach der neue Laufwerksbuchstabe erscheinen. Entfernen Sie nun den USB-Stick wieder. Auch diese Info bekommen Sie in der ListBox angezeigt.

Dieser Tipp wurde bereits 17.727 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Aktuelle Diskussion anzeigen (1 Beitrag)

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2018 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel