Usb Geräte Name und ID auslesen

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von Hoffi.

    Usb Geräte Name und ID auslesen

    Hi Leute,

    ich möchte ein Programm schreiben, dass den Geräte Namen und die SerialID ausliest. Ich weiß leider nicht genau, ob der Code unten der richtige ist, denn er liest nur einen Stick aus. Würde auch gerne Wissen, wie man alle USB-Geräte ausliest, sodass der Name und die ID da steht. :) danke an alle im Vorraus ;)

    VB.NET-Quellcode

    1. Imports System.Management
    2. Public Class Anmelden
    3. Dim DeviceID As String = ""
    4. Function GetDeviceID()
    5. Try
    6. Dim MS As ManagementObjectSearcher = New ManagementObjectSearcher("SELECT * FROM Win32_diskdrive where interfacetype = 'USB'")
    7. For Each Mo As ManagementObject In MS.Get
    8. For Each Data As PropertyData In Mo.Properties
    9. If Data.Name = "PNPDeviceID" Then
    10. DeviceID = Convert.ToString(Data.Value)
    11. Dim ArrUSBInfo() As String = DeviceID.Split("\")
    12. Return ArrUSBInfo(UBound(ArrUSBInfo))
    13. End If
    14. Next
    15. Next
    16. Catch ex As Exception
    17. Return 0
    18. End Try
    19. End Function
    20. Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
    21. Private Sub Anmelden_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    22. Label1.Text = GetDriveType(nDrive:="USB")
    23. End Sub
    24. End Class


    *Topic verschoben*
    Mit dem Computer können wir Probleme lösen, die wir ohne ihn nicht hätten.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Wie kann ich den Text dann so verändern, dass er automatisch zu dem Namen die richtige ID ausliest? Stehe gerade auf dem Schlauch ^^ Die SerialID ließt er aber richtig aus oder? Den habe ich grade in einer Datei von mir gefunden ^^

    VB.NET-Quellcode

    1. Option Explicit On
    2. Option Strict On
    3. Imports System.Management
    4. Public Class Form1
    5. Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
    6. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    7. Dim gui As GetUSBInformation = New GetUSBInformation()
    8. Try
    9. ListBox1.Items.Add(gui.GetModel)
    10. Catch ex As Exception
    11. MessageBox.Show(ex.Message.ToString(), "Info")
    12. End Try
    13. ListBox1.Items.Add(GetDriveType(nDrive:=(gui.GetModel)))
    14. End Sub
    15. Private Class GetUSBInformation
    16. Private _model As String
    17. Public Sub New()
    18. Me.GetUSBDriveInformations()
    19. End Sub
    20. Public ReadOnly Property GetModel() As String
    21. Get
    22. Return Me._model
    23. End Get
    24. End Property
    25. Public Sub GetUSBDriveInformations()
    26. Try
    27. Dim query As String = "SELECT * FROM Win32_DiskDrive WHERE InterfaceType='USB'"
    28. Dim mos As ManagementObjectSearcher = New ManagementObjectSearcher(query)
    29. For Each mo As ManagementObject In mos.Get()
    30. Me._model = mo("Model").ToString()
    31. Next
    32. Catch ex As ManagementException
    33. MessageBox.Show(ex.Message.ToString(), "ManagementException")
    34. Catch ex As Exception
    35. MessageBox.Show(ex.Message.ToString(), "Exception")
    36. End Try
    37. End Sub
    38. End Class
    39. End Class


    Da schmeißt er mir auch immer nur eins raus und ich weiß nicht, ob es die richtige ID ist :(
    Mit dem Computer können wir Probleme lösen, die wir ohne ihn nicht hätten.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Hoffi“ ()

    zb:

    VB.NET-Quellcode

    1. Dim theSearcher = New ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive WHERE InterfaceType='USB'")
    2. For Each mo As ManagementObject In theSearcher.Get
    3. Dim SerialQuery = New ManagementObject("Win32_PhysicalMedia.Tag='" & CStr(mo("DeviceID")) & "'")
    4. Debug.Print("Serial (if any) : " & SerialQuery("SerialNumber").ToString)
    5. Next



    abgwandelt von: stackoverflow.com/questions/45…r-of-usb-stick-in-c-sharp
    Habe es geschafft^^. Wenn ich den Code posten soll, dann schreibt bis zum 23.04.2012 hier ins Forum rein, wenn nicht markiere ich es als erledigt.

    Trotzdem danke für die Hilfe :).
    Mit dem Computer können wir Probleme lösen, die wir ohne ihn nicht hätten.

    Hoffi schrieb:

    Wenn ich den Code posten soll,
    Klar, wir freuen uns immer, wenn win Stück lauffähiger Code veröffentlicht wird, denn der nächte mit einem vergleichbaren Problem kommt bestimmt. :thumbup:
    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!

    Hoffi schrieb:

    wenn nicht markiere ich es als erledigt.
    <offtopic>
    ich glaub du hast "erledigt" mit "geschlossen" verwechselt - bei erledigt wird es nur so markiert, man kann aber trotzdem noch schreiben, schließen können nur die Mods, dann kann man nicht mehr antworten.
    </offtopic>

    Ansonsten kann ich mich Rod nur anschließen ;)

    VB.NET-Quellcode

    1. Option Strict On
    2. Imports System.IO
    3. Imports System.Management
    4. ' (Den Verweis auf System.Management nicht vergessen!) Die Klasse im Anhang ist ebenfalls dazu notwendig (Sie wurde nicht von mir erstellt).
    5. Dim cdrive As System.IO.DriveInfo
    6. Dim ans As String
    7. cdrive = My.Computer.FileSystem.GetDriveInfo("Den Laufwerkbuchstaben hier eintragen")
    8. Steuerelement.Text = "Geräte Name: " + cdrive.VolumeLabel
    9. ans = usb.GetSerialNumber("Den Laufwerkbuchstaben hier eintragen")
    10. Steuerelement.Text = "SerialID: " + ans
    11. ' Es kann sein, dass man mehrere Try-Blöcke einfügen muss, da es zu Fehlern kommen könnte.


    Eigentlich übelst einfach :D und Beachtet die C&P Bremse!!!
    Dateien
    • USB_Serial2.vb

      (3,05 kB, 456 mal heruntergeladen, zuletzt: )
    Mit dem Computer können wir Probleme lösen, die wir ohne ihn nicht hätten.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Hoffi“ ()