加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

VB 取磁盘序列号

发布时间:2020-12-17 07:42:45 所属栏目:百科 来源:网络整理
导读:如何获取磁盘序列号呢?获取磁盘序列号的方法有很多、如通过调用".PhysicalDrive0" 、".SCSI0: "等 驱动,也可以通过" WMI Services ",不过本文中都不会使用前面列举的 方法,而是通过“ 系统核心库 ”导出的 GetVolumeInformation 函数,或许你会感

如何获取磁盘序列号呢?获取磁盘序列号的方法有很多、如通过调用".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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读