Festplattengröße mit WMI direkt von der Festplatte erhalten

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Bernd.

    Festplattengröße mit WMI direkt von der Festplatte erhalten

    Hallo Ihr,

    ich weiß es wurde wahrscheinlich schon X mal angesprochen .. aber nie habe ich die richtige Lösung gefunden..
    Ich suche eine Möglichkeit, dass ich die Größe einer (oder der 1.) Festplatte erhalte direkt von der Festplatte per WMI oder so


    Ich habe schon div. Mathround sachen und Totalsize und Freesize und alle möglichen .net Sachen ausprobiert .. diese Sachen sind nicht das was ich will.. ich will auch auf kein Laufwerk wie C:\ D:\ oder so zugreifen..
    am liebsten wäre mir wenn man mit vb.net direkt vom Aufkleber den Text der Festplattengröße ablesen könne *lach*

    Also sowas

    VB.NET-Quellcode

    1. My.Computer.FileSystem.GetDriveInfo(drive.Name).TotalSize
    möchte ich nicht nutzen.. Ich gehe davon aus das die Festplatte weiß wie groß sie ist.. auch wenn das evtl. nicht die reale Größe ist.
    weil wenn sie Serien Nummer ausspucken kann und div. andere Sache muss das doch auch Möglich sein oder?

    Danke für die Auskunft
    Hallo,
    danke für die schnelle Antwort.. das teil von vbarchiv.net hat auch wieder Laufwerksbuchstaben .. bei dem anderen schau ich mal ob das etwas ist ..

    EDIT: habe gerade gesehen das auch beim 2ten Link ein Aufruf über dem Laufwerksbuchstabe erfolgt.. ist also nicht in meinem Sinn :(

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

    OK,
    dann sorry.. dann habe ich mich falsch ausgedrückt.. ich brauche halt eine Variante die mir wie die Seriennummer Hersteller usw. die Festplattengröße so ausliest das ich weder auf Partition noch auf Laufwerksbuchstaben achten muss...
    ich meine die Festplatte muss das doch wissen und stellt es doch bestimmt auch zur Verfügung oder nicht?

    EDIT:

    VB.NET-Quellcode

    1. ' Festplatten-Größe auslesen
    2. Public Function GetHDDSerial(ByVal HDD_idx As Integer) As String
    3. Dim searcher As New System.Management.ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive")
    4. For Each wmi_HD As System.Management.ManagementObject In searcher.Get()
    5. If wmi_HD.Item("Index") = HDD_idx Then
    6. 'wenn Index gefunden, Größe zurückgeben
    7. Return Math.Round(wmi_HD.Item("Size") / 1000000000)
    8. 'wmi_HD.Item("Size").ToString
    9. End If
    10. Next wmi_HD
    11. ' Falls Index nicht gefunden, Leerstring zurückgeben
    12. Return ""
    13. End Function


    so habe eine Lösung die mich zufrieden stellt.. DANKE :)

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

    Sorry, hättest du direkt richtig ausgedrückt. Dann hätte ich dir auch folgen können.

    Dann mach bitte Option Strict On bei dir an.

    VB.NET-Quellcode

    1. ' Festplatten-Größe auslesen
    2. Public Function GetHDDSerial(ByVal HDD_idx As Integer) As String
    3. Dim searcher As New System.Management.ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive")
    4. For Each wmi_HD As System.Management.ManagementObject In searcher.Get()
    5. If wmi_HD.Item("Index") Is CStr(HDD_idx) Then
    6. 'wenn Index gefunden, Größe zurückgeben
    7. Return Math.Round(CDbl(wmi_HD.Item("Size")) / 1000000000).ToString
    8. 'wmi_HD.Item("Size").ToString
    9. End If
    10. Next wmi_HD
    11. ' Falls Index nicht gefunden, Leerstring zurückgeben
    12. Return String.Empty
    13. End Function

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