VB 版 (精华区)

发信人: liujq (天高任我飞), 信区: VisualBasic
标  题: 在VB5中获取硬盘的卷标和序列号
发信站: 紫 丁 香 (Sun Nov 14 19:13:42 1999), 转信

 电脑工作室
                                                                出版日期:99
-9-20  总期号:859  本年期号:69
     在VB5中获取硬盘的卷标和序列号
     
     张建宇
   我们在用Visual Basic开发程序时,有时需要知道当前硬盘的卷标和序列号等信息,
如在对VB程序
   加密时。本文将介绍通过调用GetVolumeInformation()API函数来获得这些信息。
   1.函数的声明及变量的意义
   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
   lpRootPathName
                                 带根目录标
                                 记的磁盘符
                                 号
   lpVolumeNameBuffer
                                 卷标的缓冲
                                 区
   nVolumeNameSize
                                 卷标缓冲区
                                 的大小
   lpVolumeSerialNumber
                                 磁盘序列号
   lpMaximumComponentLength
                                 最大文件名
                                 的长度
   lpFileSystemFlags
                                 压缩盘标记
   lpFileSystemNameBuffer
                                 文件系统名
                                 称缓冲区
   nFileSystemNameSize
                                 文件系统名
                                 称缓冲区大
                                 小
   2.程序实例
   新建工程,在窗体上创建具有如下属性的两个标签控件和两个文本框控件。
   控件
           名称
                              属
                              性
                              值
   label1
           lblVolumeName
                              ″
                              卷
                              标
                              ″
   label2
           lblSerialNumber
                              ″
                              序
                              列
                              号
                              ″
   text1
           txtSerialNumber
   text2
           txtVolumeName
   程序源代码如下:
   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
   Private Sub Form_Load()
   Dim DriveName As String
   Dim VolumeName As String
   Dim SerialNumber As Long
   Dim FileSystemName As String
   DriveName = ″C:\″
   VolumeName = String(255, Chr(0))
   ′初始化卷标缓冲区
   FileSystemName = String(255, Chr(0))
   ′初始化文件系统名称缓冲区
   GetVolumeInformation DriveName, VolumeName, _
   Len(VolumeName), SerialNumber, 0, 0, FileSystemName, Len(FileSystemName)
   txtVolumeName = Left(VolumeName, InStr(1, VolumeName, Chr(0)) - 1)
   ′去掉多余的空格
   txtSerialNumber = Hex(SerialNumber)
   ′用十六进制显示卷标
   End Sub
   运行该程序,即可在文本框中显示指定磁盘的序列号和卷标。

--
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: 202.118.229.84]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.348毫秒