to :TechnoFantasy 不要获得网络驱动器的VolumeSerialNumber, 那如何在95/98下获得VolumeSerialNumber?多谢指教
你的代码我在2000下试了,没有问题,我估计是Win98对这个参数不支持。
'试一下这个!把这个放入一个类模块中 Public Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long Public 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 Public 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 Public Type LARGE_INTEGER ' 8 Bytes lowpart As Long highpart As Long End Type Public Type DiskInfo DiskInfo_Volume As String * 255 '卷标 DiskInfo_Number As Long '硬盘标记 DiskInfo_LongFileName As Long '最大文件名长 diskinfo_zipdiskflag As Long '压缩盘标记 DiskInfo_FatType As String * 255 '文件分配表类型 DiskInfo_SectorsPerCluster As Long '每簇扇区数 DiskInfo_BytesPerSector As Long '每扇区字节数 DiskInfo_NumberOfFreeClusters As Long '磁盘剩余簇数 DiskInfo_TotalClusters As Long '磁盘簇数 End Type Public Function GetDiskInfo(Driver As String) As DiskInfo Dim TmpInfo As DiskInfo Dim MReturn As LongWith TmpInfo
MReturn = GetVolumeInformation(Driver, .DiskInfo_Volume, 255, .DiskInfo_Number, .DiskInfo_LongFileName, .diskinfo_zipdiskflag, .DiskInfo_FatType, 255)end with end sub
不要获得网络驱动器的VolumeSerialNumber,
那如何在95/98下获得VolumeSerialNumber?多谢指教
Public Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long
Public 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
Public 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
Public Type LARGE_INTEGER ' 8 Bytes
lowpart As Long
highpart As Long
End Type
Public Type DiskInfo
DiskInfo_Volume As String * 255 '卷标
DiskInfo_Number As Long '硬盘标记
DiskInfo_LongFileName As Long '最大文件名长
diskinfo_zipdiskflag As Long '压缩盘标记
DiskInfo_FatType As String * 255 '文件分配表类型
DiskInfo_SectorsPerCluster As Long '每簇扇区数
DiskInfo_BytesPerSector As Long '每扇区字节数
DiskInfo_NumberOfFreeClusters As Long '磁盘剩余簇数
DiskInfo_TotalClusters As Long '磁盘簇数
End Type
Public Function GetDiskInfo(Driver As String) As DiskInfo
Dim TmpInfo As DiskInfo
Dim MReturn As LongWith TmpInfo
MReturn = GetVolumeInformation(Driver, .DiskInfo_Volume, 255, .DiskInfo_Number, .DiskInfo_LongFileName, .diskinfo_zipdiskflag, .DiskInfo_FatType, 255)end with
end sub