VB获取磁盘分区序列号等相关信息

Eddy 发布于2009-11-4 12:43:25 分类: 程序设计 已浏览loading 网友评论0条 我要评论

源代码:

'------------------------------
'VB获取磁盘分区序列号等相关信息
'By Eddy
'www.rrgod.com
'------------------------------
Option Explicit
Private 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
Const FILE_VOLUME_IS_COMPRESSED = &H8000

'说明
'获取与一个磁盘卷有关的信息

'返回值
'Long,非零表示成功,零表示失败。会设置GetLastError

'参数表
'参数 类型及说明
'lpRootPathName String,欲获取信息的那个卷的根路径
'lpVolumeNameBuffer String,用于装载卷名(卷标)的一个字串
'nVolumeNameSize Long,lpVolumeNameBuffer字串的长度
'lpVolumeSerialNumber Long,用于装载磁盘卷序列号的变量
'lpMaximumComponentLength Long,指定一个变量,用于装载文件名每一部分的长度。例如,在“c:\component1\component2.ext”的情况下,它就代表component1或component2名称的长度
'lpFileSystemFlags Long,用于装载一个或多个二进制位标志的变量。对这些标志位的解释如下:
'FS_CASE_IS_PRESERVED 文件名的大小写记录于文件系统
'FS_CASE_SENSITIVE 文件名要区分大小写
'FS_UNICODE_STORED_ON_DISK 文件名保存为Unicode格式
'FS_PERSISTANT_ACLS 文件系统支持文件的访问控制列表(ACL)安全机制
'FS_FILE_COMPRESSION 文件系统支持逐文件的进行文件压缩
'FS_VOL_IS_COMPRESSED 整个磁盘卷都是压缩的
'lpFileSystemNameBuffer String,指定一个缓冲区,用于装载文件系统的名称(如FAT,NTFS以及其他)
'nFileSystemNameSize Long,lpFileSystemNameBuffer字串的长度

Public Sub GetVolInfo(ByVal Path As String)
Dim a As Long
Dim VolName As String * 256
Dim fsysName As String * 256
Dim VolSeri As Long, compress As Long
Dim SysFlag As Long, Maxlen As Long

a = GetVolumeInformation(Path, VolName, 256, VolSeri, Maxlen, SysFlag, fsysName, 256)
If a = 0 Then
    MsgBox "wrong!"
    Exit Sub
End If
compress = SysFlag And FILE_VOLUME_IS_COMPRESSED
Print "磁盘分区" & Mid(Path, 1, 1) & "的序列号为  :" & Hex(VolSeri)
Print "磁盘分区" & Mid(Path, 1, 1) & "的卷名称为  :" & VolName
Print "磁盘分区" & Mid(Path, 1, 1) & "的文件系统为:" & fsysName
If compress = 0 Then
    Print "磁盘分区" & Mid(Path, 1, 1) & ":未被压缩"
Else
    Print "磁盘分区" & Mid(Path, 1, 1) & ":被压缩"
End If
Print "Max Length of File Name ", Maxlen
End Sub

Private Sub Command1_Click()
Call GetVolInfo("C:\")
Print "------------------------------------"
Call GetVolInfo("D:\")
End Sub

 

已经有(0)位网友发表了评论,你也评一评吧!
原创文章如转载,请注明:转载自Eddy Blog
原文地址:http://www.rrgod.com/program/62.html     欢迎订阅Eddy Blog

关于 VB  磁盘  分区  序列号  的相关文章

记住我的信息,下次不用再输入 欢迎给Eddy Blog留言