请问在VB里面获取硬盘信息的代码应该怎么编写?
我现在正在做一宾馆监控方面的系统,请问在VB里面获取硬盘信息的代码应该怎么编写?谢谢了 问题点数:20、回复次数:5Top
1 楼hank212(IT民工)回复于 2006-05-04 15:04:56 得分 0
Option Explicit
Private Type LARGE_INTEGER
lowpart As Long
highpart As Long
End Type
Private Declare Function GetDiskFreeSpace Lib "kernel32" Alias "GetDiskFreeSpaceA" (ByVal lpRootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTotalNumberOfClusters As Long) As Long
Private Declare Function GetDiskFreeSpaceEx Lib "kernel32" Alias "GetDiskFreeSpaceExA" _
(ByVal lpRootPathName As String, lpFreeBytesAvailableToCaller As LARGE_INTEGER, _
lpTotalNumberOfBytes As LARGE_INTEGER, lpTotalNumberOfFreeBytes _
As LARGE_INTEGER) As Long
Private Sub Command1_Click()
Dim lngSectors&
Dim lngTotalCluster&
Dim lngFreeCluster&
Dim lngPerCluster&
Dim lngperBytes&
Dim lngSize#
GetDiskFreeSpace "d:\", lngPerCluster, lngperBytes, lngFreeCluster, lngTotalCluster
' MsgBox CStr(lngTotalCluster * lngperBytes * lngPerCluster)
Debug.Print lngTotalCluster, lngperBytes, lngPerCluster
End Sub
Private Sub cmdStart_Click()
'用GetDiskFreeSpaceEx得到正确的容量
Dim lngFreeCaller As LARGE_INTEGER
Dim lngTotal As LARGE_INTEGER
Dim lngTotalFree As LARGE_INTEGER
Dim sngSize#
GetDiskFreeSpaceEx "c:\", lngFreeCaller, lngTotal, lngTotalFree
'以下用来显示出分区总容量(以G为单位)
MsgBox GetSize(lngTotal) / 2 ^ 30
End Sub
Private Function GetSize(lngSize As LARGE_INTEGER) As Single
'用来从LARGE_INTEGER型变量中换算出实际的大小
With lngSize
If .highpart < 0 Then
GetSize = (2 ^ 32 - 1 - .highpart) * (2 ^ 32 - 1)
Else
GetSize = .highpart * (2 ^ 32 - 1)
End If
If .lowpart < 0 Then
GetSize = GetSize + (2 ^ 32 - 1 - .lowpart)
Else
GetSize = GetSize + .lowpart
End If
End With
End Function
Top
2 楼lluo666()回复于 2006-05-04 17:13:52 得分 0
hank212(IT民工)
你好,谢谢你了
我想获取的是容量信息,就是还剩多少空间,(MB)
代码应该怎么编写?
Top
3 楼ryuginka(一米八五的猪)回复于 2006-05-04 17:35:40 得分 0
WMI libraryTop
4 楼lluo666()回复于 2006-05-04 19:31:32 得分 0
WMI library
是什么?
Top
5 楼liuyuesoft(QQ:339596357)回复于 2006-05-07 12:48:12 得分 0
我以前是引用FSO...FileSystemObject
工程->引用->Microsoft Scripting Runtime->确定
然后
Dim a as new filesystemobject
然后..自己找了Top




