微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

原文地址:https://www.jb51.cc/vb/257216.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐