Обнаружить все жесткие диски на компе - VB

Узнай цену своей работы

Формулировка задачи:

день добрый нужно узнать какие жесткие диски есть на компе. Один из них (на которой винда стоит) я узнаю так:
но мне и другие нужны. Спасибо

Решение задачи: «Обнаружить все жесткие диски на компе»

textual
Листинг программы
'Option Explicit
 
Declare Function GetDriveType Lib "kernel32.dll" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (Dst As Any, Src As Any, ByVal Length As Long)
 
Dim Root$, ptrRoot&
 
Sub Drv_List()
    DrvList$ = "ABCDEFGHIJKLMNOPQRTSUVWXYZ"
    For i% = 1 To 26
        Root$ = Mid$(DrvList$, i%, 1) + ":\"
'        If GetDriveType(Root$) = 3 Then Debug.Print Root$
    Next i%
End Sub
 
Sub Drv_List1()
    For i% = Asc("A") To Asc("Z")
        Root$ = Chr(i) + ":\"
'        If GetDriveType(Root$) = 3 Then Debug.Print Root$
    Next i%
End Sub
 
Sub Drv_List2()
Dim i&
    For i = Asc("A") To Asc("Z")
        Mid(Root, 1) = Chr$(i)
'        If GetDriveType(Root) = 3 Then Debug.Print Root$
    Next
End Sub
 
Sub Drv_List3()
Dim i&
    For i = Asc("A") To Asc("Z")
        CopyMemory ByVal ptrRoot, i, 2&
'        If GetDriveType(Root) = 3 Then Debug.Print Root$
    Next
End Sub
 
Sub test()
Dim i&, t!, N&, j&
N = 100000
For j = 0 To 1
    Debug.Print IIf(j, "зачетный", "прогревочный") & " забег"
    DoEvents
    t = Timer
    For i = 1 To N
        Drv_List
    Next
    Debug.Print Timer - t
    DoEvents
    t = Timer
    For i = 1 To N
        Drv_List1
    Next
    Debug.Print Timer - t
    DoEvents
    t = Timer
    Root = " :\"
    For i = 1 To N
        Drv_List2
    Next
    Debug.Print Timer - t
    DoEvents
    t = Timer
    Root = " :\"
    ptrRoot = StrPtr(Root)
    For i = 1 To N
        Drv_List3
    Next
    Debug.Print Timer - t
Next
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5
Похожие ответы