HDD anhand des Namen erkennen

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von mys3lf.

    HDD anhand des Namen erkennen

    Hallo allerseits,
    Wie schon in der Überschrift beschreiben wollte ich mal wissen ob es möglich ist eine USB-Festplatte anhand dessen Namen und nicht anhand dessen Laufwerkbuchstaben zu erkennen.
    Denn der Laufwerkbuchstabe ändert sich ja unter umständen an einem anderen Rechner jedoch der Laufwerkname nicht.

    Vielen dank im Vorraus
    It's not a bug, it's a feature

    VB.NET-Quellcode

    1. Dim di As New System.IO.DriveInfo("c")
    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!
    So kriegst du die Laufwerke welche zu Verfügung stehen:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. For Each Laufwerk As IO.DriveInfo In My.Computer.FileSystem.Drives
    2. If Laufwerk.IsReady Then
    3. TextBox1.Text &= Laufwerk.Name & vbNewLine
    4. End If
    5. Next

    Für die Namen hab ich irgendwo noch einen Code, der aber um einiges komplizierter ist, find ihn aber nicht mehr...

    Edit:
    Hier kannst du einen USB Stick mit ID identifizieren, sollte mMn auch mit HDD's funktionieren, musst du aber ein bisschen umbasteln:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Imports System.Management
    2. Imports System.Drawing
    3. Imports System.ComponentModel
    4. Public Class Form1
    5. Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    6. Dim PID As String
    7. Try
    8. Dim mos As ManagementObjectSearcher = New ManagementObjectSearcher("SELECT * FROM Win32_diskdrive where interfacetype = 'USB'")
    9. For Each mo As ManagementObject In mos.Get()
    10. For Each pd As PropertyData In mo.Properties
    11. If pd.Value IsNot Nothing Then
    12. PID = Convert.ToString(pd.Value)
    13. If pd.Name = "PNPDeviceID" Then MsgBox(PID)
    14. End If
    15. Next
    16. Next
    17. Catch ex As Exception
    18. End Try
    19. End Sub

    Quelle: vb-paradise.de/programmieren/h…icks-auslesen/#post157388

    Mfg Dancger
    MESS WITH THE BEST, DIE LIKE THE REST! :evil:
    n'paar Links: DNS Tools, Steal WA DB, Droidsheep...

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Dancger“ ()

    VB.NET-Quellcode

    1. For Each Laufwerk As IO.DriveInfo In My.Computer.FileSystem.Drives
    2. If Laufwerk.IsReady Then
    3. TextBox1.Text &= Laufwerk.Name & vbNewLine
    4. End If
    5. Next


    So habs jetz einiegermaßen. Hab einfach

    VB.NET-Quellcode

    1. TextBox1.Text &= Laufwerk.Name & vbNewLine

    durch

    VB.NET-Quellcode

    1. TextBox1.Text &= Laufwerk.VolumeLabel & vbNewLine

    ersetzt.
    Dann zeigt er mir nur die Namen an.
    Trotzdem vielen Dank für den Lösungsansatz.
    It's not a bug, it's a feature