USB-Stick Serien nummer auslesen

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Gelöschter Benutzer.

    USB-Stick Serien nummer auslesen

    Hallo!
    Ich suche jetzt schon seit längerem nach einer Möglichkeit, mit der ich die eindeutige Hardware seien nummer meines USB-Sticks auslesen kann.
    per WMI hat es bei mir noch nicht geklappt.
    Gruß, big-d
    Ich habe folgendes getestet:

    VB.NET-Quellcode

    1. Imports System.Management
    2. Public Class Form1
    3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    4. Try
    5. Dim searcher As New ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia")
    6. For Each wmi_HD As ManagementObject In searcher.Get()
    7. ListBox1.Items.Add((wmi_HD("SerialNumber")).ToString())
    8. Next
    9. Catch ex As Exception
    10. End Try
    11. End Sub
    12. End Class


    Aber es geht nicht
    Ich habe diesen code:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. 'Beispiel: VB .Net - WMI - USB - Informationen ermitteln
    2. 'Hinweis : Um das Beispiel zu Testen ist es erforderlich ein USB Laufwerk anzuschliessen.
    3. '
    4. Option Explicit On
    5. Option Strict On
    6. Imports System.Management
    7. Public Class Form1
    8. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    9. Dim gui As GetUSBInformation = New GetUSBInformation()
    10. Try
    11. Me.ListBox1.Items.Add(gui.GetInterfaceType)
    12. Me.ListBox1.Items.Add(gui.GetModel)
    13. Me.ListBox1.Items.Add(gui.GetManufacturer)
    14. Me.ListBox1.Items.Add(gui.GetDescription)
    15. Me.ListBox1.Items.Add(gui.GetId)
    16. TextBox1.Text = gui.GetId
    17. Catch ex As Exception
    18. MessageBox.Show(ex.Message.ToString(), "Info")
    19. End Try
    20. End Sub
    21. Private Class GetUSBInformation
    22. Private _interfacetype As String
    23. Private _model As String
    24. Private _manufacturer As String
    25. Private _description As String
    26. Private _id As String
    27. Private _name As String
    28. Public Sub New()
    29. Me.GetUSBDriveInformations()
    30. End Sub
    31. Public ReadOnly Property GetInterfaceType() As String
    32. Get
    33. Return Me._interfacetype
    34. End Get
    35. End Property
    36. Public ReadOnly Property GetName() As String
    37. Get
    38. Return Me._name
    39. End Get
    40. End Property
    41. Public ReadOnly Property GetId() As String
    42. Get
    43. Return Me._id
    44. End Get
    45. End Property
    46. Public ReadOnly Property GetModel() As String
    47. Get
    48. Return Me._model
    49. End Get
    50. End Property
    51. Public ReadOnly Property GetManufacturer() As String
    52. Get
    53. Return Me._manufacturer
    54. End Get
    55. End Property
    56. Public ReadOnly Property GetDescription() As String
    57. Get
    58. Return Me._description
    59. End Get
    60. End Property
    61. Public Sub GetUSBDriveInformations()
    62. Try
    63. Dim query As String = "SELECT * FROM Win32_DiskDrive WHERE InterfaceType = 'USB'"
    64. Dim mos As ManagementObjectSearcher = New ManagementObjectSearcher(query)
    65. For Each mo As ManagementObject In mos.Get()
    66. Me._interfacetype = mo("InterfaceType").ToString()
    67. Me._model = mo("Model").ToString()
    68. Me._manufacturer = mo("Manufacturer").ToString()
    69. Me._description = mo("Description").ToString()
    70. Me._id = mo("PNPDeviceID").ToString()
    71. Me._name = mo("Name").ToString()
    72. Next
    73. Catch ex As ManagementException
    74. MessageBox.Show(ex.Message.ToString(), "ManagementException")
    75. Catch ex As Exception
    76. MessageBox.Show(ex.Message.ToString(), "Exception")
    77. End Try
    78. End Sub
    79. End Class
    80. End Class

    wieso gibt der code immer nur einen von 3 Sticks aus???

    Bei WMI sihe Bild!
    Was ist der fehler?
    Bilder
    • prob.jpg

      192,98 kB, 809×469, 528 mal angesehen

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „da-kid“ ()


    wieso giebt der code immer nur einen von 3 Sticks aus???

    Das wird nicht gehen.

    Du muß die Angeschlossene Laufwerke (USB Stick) aufliesten und mit eine For Each Schleife die Laufwerke durchlaufen und Infos von jeden angeschlossenen Laufwerk (USB Stick) auslesen.
    Infos kannst in eine Array zwieschen speichern und spähter in einem ListView/ListBox/ComboBox oder etc anzeigen lassen.

    USB Laufwerke erkennen (Code muß du noch anpassen):
    Erkennen, wann ein Laufwerk hinzugefügt bzw. entfernt wurde (USB-Stick)

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

    Hi,

    versuch mal das, diesen Code habe ich aus diesem Forum, jedoch weiß ich nicht mehr von wem das war, siehe:

    VB.NET-Quellcode

    1. Imports System.Management
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. Dim PID As String
    4. Dim mos As ManagementObjectSearcher = New ManagementObjectSearcher("SELECT * FROM Win32_diskdrive where interfacetype = 'USB'")
    5. For Each mo As ManagementObject In mos.Get()
    6. For Each pd As PropertyData In mo.Properties
    7. If pd.Value IsNot Nothing Then
    8. PID = Convert.ToString(pd.Value)
    9. If pd.Name = "PNPDeviceID" Then MsgBox(PID)
    10. End If
    11. Next
    12. Next
    13. End Sub


    Ciao...