Laufwerksinformationen auslesen

  • Hi,
    ich würde gerne die Laufwerksinformationen (z.Bsp. Hersteller, Anzeigename, etc.) von meinen externen USB-Festplatten per AutoIt auslesen.
    Hat jemand einen Tip für mich ?

    Gruß

    Markus

    Einmal editiert, zuletzt von bordermax (25. August 2014 um 11:17)

    • Offizieller Beitrag

    Hier die Funktion aus meinen Computer-Info:

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    #include <WinAPIMisc.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $aDriveInfo = _CI_GetHarddrives()
    _ArrayDisplay($aDriveInfo)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _CI_GetHarddrives($strComputer = '.')
    Local $aReturn[1][7] = [[ _
    'Bezeichnung:', 'Größe:', 'Anschluss:', 'Bytes/Sektor:', 'Anzahl der Sektoren:', _
    'PNPDeviceID:', 'Status:']]
    Local $x = 0, $objWMIService, $colItems
    $objWMIService = ObjGet('winmgmts:\\' & $strComputer & '\root\cimv2')
    If Not IsObj($objWMIService) Then Return SetError(1, 0, 0)
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_DiskDrive', 'WQL', 0x30)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $x += 1
    ReDim $aReturn[$x + 1][7]
    $aReturn[$x][0] = $objItem.Model
    $aReturn[$x][1] = _WinAPI_StrFormatByteSize($objItem.Size)
    $aReturn[$x][2] = $objItem.InterfaceType
    $aReturn[$x][3] = $objItem.BytesPerSector
    $aReturn[$x][4] = $objItem.TotalSectors
    $aReturn[$x][5] = $objItem.PNPDeviceID
    $aReturn[$x][6] = $objItem.Status
    Next
    EndIf
    Return $aReturn
    EndFunc ;==>_CI_GetHarddrives

    [/autoit]