USB-Sticks eindeutig erkennen

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    USB-Sticks eindeutig erkennen

    Hallo,

    ich möchte einen USB-Stick wie einen Schlüssel bzw. Dongle verwenden. Damit möchte ich Spielereien an einem meiner Programme vorbeugen. Ich habe schon einige Beiträge dazu gelesen, aber nichts passendes gefunden.
    Ich weiß auch, dass ich das Ganze in eine Funktion packen sollte, aber darum geht es mir jetzt erstmal nicht.

    Im Code verwende ich die Stelle "If pd.Value IsNot Nothing Then". Dadurch soll es, wenn pd.Value Daten enthält - 'ichbins' auf true setzen, andernfalls auf false.
    Leider wird mir die Variable 'ichbins' immer auf false gesetzt, ich vermute, weil pd.value ein Array ist...
    Doch auch, wenn ich z.B. den letzten Eintrag im Array abfrage, ändert es nichts und 'ichbins' bleibt false.

    VB.NET-Quellcode

    1. Public ichbins As Boolean = False
    2. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    3. Dim PID As String = ""
    4. Try
    5. Dim mos As ManagementObjectSearcher = New ManagementObjectSearcher("SELECT * FROM Win32_diskdrive where interfacetype = 'USB'")
    6. For Each mo As ManagementObject In mos.Get()
    7. For Each pd As PropertyData In mo.Properties
    8. If pd.Value IsNot Nothing Then
    9. PID = Convert.ToString(pd.Value)
    10. ListBox1.Items.Add(pd.Value)
    11. If pd.Name = "PNPDeviceID" Then
    12. If PID.Contains("AB1446315100&0") Or
    13. PID.Contains("7&23420A39&0&_&0") Or
    14. PID.Contains("0013729B6877BB4106390154&0") Then
    15. ichbins = True
    16. End If
    17. End If
    18. Else
    19. ichbins = False
    20. End If
    21. Next
    22. Next
    23. Catch ex As Exception
    24. End Try
    25. End Sub

    Murdersquad schrieb:

    ich vermute, weil pd.value ein Array ist...
    Da ist ein Haltepunkt sehr nützlich, um zu erforschen, ob oder nicht:
    Debuggen, Fehler finden und beseitigen
    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!