VB 取磁盘序列号

如何获取磁盘序列号呢?获取磁盘序列号的方法有很多、如通过调用"\\.\PhysicalDrive0"

、"\\.\SCSI0: "等驱动,也可以通过"WMI Services",不过本文中都不会使用前面列举的

方法,而是通过“系统核心库”导出的GetVolumeinformation函数,或许你会感到疑惑 从

字面看应该是“取音量信息”与“磁盘序列号”没有任何关系吧,在当初我接触到这方面得资

料时也有不小疑惑,但是如果翻译成“取磁卷信息”那么或许便可以理解了吧、

在上图中,可以看到通过GetVolumeinformation函数,可以获取磁盘卷标”、“文件系统

包括磁盘序号”等信息,当然从本文标题中可以看到,只需要“磁盘序号”的信息、

上面是“GetVolumeinformation函数的导入声明,我阐述下该函数参数的信息吧、

lpRootPathName 欲取信息磁卷根路径

lpVolumeNameBuffer 磁卷名称缓冲区

nVolumeNameSize 磁卷名称缓冲区尺寸

lpVolumeSerialNumber 磁盘序号缓冲区

lpMaximumComponentLength 文件名称分段尺寸

lpFileSystemFlags 文件系统标志

lpFileSystemNameBuffer 文件系统名称缓冲区

nFileSystemNameSize 文件系统名称缓冲区尺寸

取磁卷信息,如果成功返回真否则返回假

    Public Const MAX_BYTE = 255
    Public Const NULL = 0

    Sub Main()
        Console.Title = "取磁盘序列号"
        Dim iNumOfSerials As Integer = NULL
        Dim strLabelBuffer = Space(MAX_BYTE),strFileSysName = Space(MAX_BYTE)
        If (GetVolumeinformation("C:\",strLabelBuffer,MAX_BYTE,iNumOfSerials,strFileSysName,MAX_BYTE)) Then
            Console.WriteLine("磁盘卷标: " + strLabelBuffer.TrimEnd())
            Console.WriteLine("文件系统: " + strFileSysName.TrimEnd())
            Console.WriteLine("磁盘序号: " + iNumOfSerials.ToString("X2"))
        End If
        Console.ReadKey(False)
    End Sub
上面是一个很简单的示例代码,但是需要导入以来的命名空间,所以你需要在

你的文件代码页顶部使用下面这句话

Imports System.Runtime.InteropServices

示例代码 http://pan.baidu.com/s/1kUxEIMV

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...