Вывести в Listbox сколько занято и сколько свободно памяти на жёстком диске - VB

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

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

ещё и номер его, но главное память

Решение задачи: «Вывести в Listbox сколько занято и сколько свободно памяти на жёстком диске»

textual
Листинг программы
Private Declare Function GetDiskFreeSpaceEx Lib "kernel32" Alias "GetDiskFreeSpaceExA" (ByVal lpRootPathName As String, lpFreeBytesAvailableToCaller As Currency, lpTotalNumberOfBytes As Currency, lpTotalNumberOfFreeBytes As Currency) As Long
Private Declare Function StrFormatByteSize64 Lib "SHLWAPI.DLL" Alias "StrFormatByteSize64A" (ByVal dw As Currency, ByVal pszBuf As String, cchBuf As Long) As Long
 
Dim bbfreeUser As Currency
Dim bbtotal As Currency
Dim bbfree As Currency
 
Private Sub Command1_Click()
Call GetDiskFreeSpaceEx("C:", bbfreeUser, bbtotal, bbfree)
' Ёмкость диска (Байт)
bbtotal = bbtotal * 10000
 
' Свободного места на диске
bbfree = bbfree * 10000
 
' Свободного места на диске для текущего пользователя
bbfreeUser = bbfreeUser * 10000
 
' Для более наглядного отображения полученных данных
' (Например: 120 ГБ вместо 128849018880 Байт)
' воспользуемся функцией StrFormatByteSize64 (в FormatByteSize)
Print "Ёмкость: " & vbTab & FormatByteSize(bbtotal)
Print "Свободно: " & vbTab & FormatByteSize(bbfree)
Print "Свободно пользователю: " & vbTab & FormatByteSize(bbfreeUser)
End Sub
 
Private Function FormatByteSize(Bytes As Currency) As String
Dim strBuff As String * 256
nRet = StrFormatByteSize64(Bytes / 10000, strBuff, 255)
FormatByteSize = Left(strBuff, InStr(1, strBuff, Chr$(0)) - 1)
End Function

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

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