计算机硬盘序列号是空白,为什么小弟我的获取硬盘序列号的代码,在有些电脑下没法获取到硬盘序列号,即返回值为空白...

为什么我的获取硬盘序列号的代码,在有些电脑上没法获取到硬盘序列号,即返回值为空白?

本帖最后由 bcrun 于 2012-12-26 20:13:55 编辑

'取得硬盘信息:型号/物理系列号(唯一)

Function GetHardDiskInfo(Optional ByVal numDisk As eumDiskNo = hdPrimaryMaster, Optional ByVal numType As eumInfoType = hdOnlySN) As String

On Error GoTo Errc

If GetDiskInfo(numDisk) = 1 Then

Dim pSerialNumber As String, pModelNumber As String

pSerialNumber = StrConv(m_DiskInfo.sSerialNumber, vbUnicode)

pModelNumber = StrConv(m_DiskInfo.sModelNumber, vbUnicode)

Select Case numType

Case hdOnlyModel  '仅型号

GetHardDiskInfo = Trim(pModelNumber)

Case hdOnlySN  '仅系列号

GetHardDiskInfo = Trim(pSerialNumber)

Case Else   '型号,系列号

GetHardDiskInfo = Trim(pModelNumber) & "," & Trim(pSerialNumber)

End Select

End If

Dim l#, i#, str As String

str = GetHardDiskInfo

GetHardDiskInfo = Left(str, 20)

l# = Len(GetHardDiskInfo)

For i# = 1 To l#

str = Mid(GetHardDiskInfo, i#, 1)

If 32 

Else

Mid(GetHardDiskInfo, i#, 1) = "0"

End If

Next i#

Exit Function

Errc:

If Err.Description <> "" Then MsgBox Err.Description

End Function

Private Function OpenSMART(ByVal nDrive As Byte) As Long

Dim hSMARTIOCTL As Long

Dim hd As String

Dim VersionInfo As OSVERSIONINFO

hSMARTIOCTL = INVALID_HANDLE_VALUE

VersionInfo.dwOSVersionInfoSize = Len(VersionInfo)

GetVersionEx VersionInfo

Select Case VersionInfo.dwPlatformId

Case VER_PLATFORM_WIN32s

OpenSMART = hSMARTIOCTL

Case VER_PLATFORM_WIN32_WINDOWS

hSMARTIOCTL = CreateFile("\\.\SMARTVSD", 0, 0, 0, CREATE_NEW, 0, 0)

Case VER_PLATFORM_WIN32_NT

If nDrive 

hd = "\\.\PhysicalDrive" & nDrive

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值