USB Stick aktion

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Definiere

    livius91 schrieb:

    USB Stick ansteuern
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @livius91 Meine Glaskugel ist mir fortgelaufen, die Ersatzkugel ist immer noch beim Optiker.
    Soll was passieren, wenn der USB-Stick angeschlosen wird?
    Dein Programm wird benachrichtigt, wenn ein USB-Gerät angesteckt / entfernt wurde.
    Form mit Multiline-Textbox, Code in die Form und einen USB-Stick anstecken oder entfernen:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Protected Overloads Overrides Sub WndProc(ByRef msg As Message)
    2. MyBase.WndProc(msg)
    3. Const WM_DEVICECHANGE As Integer = &H219
    4. Const DBT_DEVICEARRIVAL As Integer = &H8000
    5. Const DBT_DEVICEREMOVECOMPLETE As Integer = &H8004
    6. Const DBT_DEVNODES_CHANGED As Integer = 7
    7. Dim wParam As Integer = msg.WParam.ToInt32()
    8. If msg.Msg = WM_DEVICECHANGE Then
    9. If wParam = DBT_DEVICEARRIVAL Then
    10. 'Laufwerke suchen
    11. For Each drive As String In Directory.GetLogicalDrives
    12. Me.DriveNameToFind = drive
    13. Dim found As DriveInfo = Me.allDrives.Find(AddressOf find_driveinfo)
    14. If found Is Nothing Then
    15. 'Me.TextBox1.AppendText("Ein USB-Gerät wurde hinzugefügt." & Environment.NewLine)
    16. Me.TextBox1.AppendText(String.Format("Ein USB-Gerät wurde hinzugefügt: {0}{1}", drive, Environment.NewLine))
    17. 'Laufwerk ist neu, Laufwerk zu "bereits vorhanden" hinzufügen
    18. Me.allDrives.Add(New DriveInfo(drive))
    19. End If
    20. Next
    21. ElseIf wParam = DBT_DEVICEREMOVECOMPLETE Then
    22. ' alle Laufwerke aus der Liste prüfen
    23. Dim temp As List(Of DriveInfo) = DriveInfo.GetDrives().ToList()
    24. For Each drive As DriveInfo In Me.allDrives
    25. Me.DriveNameToFind = drive.Name
    26. Dim lost As DriveInfo = temp.Find(AddressOf find_driveinfo)
    27. If lost Is Nothing Then
    28. Me.TextBox1.AppendText(String.Format("Ein USB-Gerät wurde entfernt: {0}{1}", drive.Name, Environment.NewLine))
    29. 'Laufwerk wird in der Liste nicht mehr gefunden: Laufwerk aus der Liste löschen
    30. Me.allDrives.Remove(drive)
    31. Exit For
    32. End If
    33. Next
    34. ElseIf wParam = DBT_DEVNODES_CHANGED Then
    35. Me.TextBox1.AppendText("Ein USB-Gerät wurde gesteckt / entfernt." & Environment.NewLine)
    36. End If
    37. End If
    38. End Sub

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Keine Sorge, meine Glaskugel ist grad zurück von der Inspektion :)

    "Magische Glaskugel, sag mir was der TE uns mitteilen will..."

    Sie sagt mir er möchte folgendes tun:
    Anmeldung am PC in Windows via USB Stick? Wenn er entfernt wird, wird man abgemeldet? Oder was meint er?
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen