Обнаружить все жесткие диски на компе - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д