Option Explicit
'================================================================
'功能:获取硬盘序列号,型号,固件版本
'用法
'Dim h As clsMainInfo
'Private Sub Form_Load()
' Set h = New clsMainInfo
' With h
' Debug.Print "硬盘型号: " & .GetModelNumber
' Debug.Print "序列号: " & .GetSerialNumber
' Debug.Print "固件版本: " & .GetFirmwareRevision
' End With
' Set h = Nothing
'End Sub
'注意:类模块命名为clsMainInfo
'=================================================================
Private Const VER_PLATFORM_WIN32S = 0 '[color=#0000ff]
Private Const VER_PLATFORM_WIN32_WINDOWS = 1
Private Const VER_PLATFORM_WIN32_NT = 2
Private Const DFP_RECEIVE_DRIVE_DATA = &H7C088
Private Const FILE_SHARE_READ = &H1
Private Const FILE_SHARE_WRITE = &H2
Private Const GENERIC_READ = &H80000000
Private Const GENERIC_WRITE = &H40000000
Private Const OPEN_EXISTING = 3
Private Const Create_NEW = 1
Private Enum HDINFO
HD_MODEL_NUMBER
HD_SERIAL_NUMBER
HD_FIRMWARE_REVISION
End Enum
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type
Private Type IDEREGS
bFeaturesReg As Byte
bSectorCountReg As Byte
bSectorNumberReg As Byte
bCylLowReg As Byte
bCylHighReg As Byte
bDriveHeadReg As Byte
bCommandReg As Byte
bReserved As Byte
End Type
Private Type SENDCMDINPARAMS
cBufferSize As Long
irDriveRegs As IDEREGS
bDriveNumber As Byte
bReserved(1 To 3) As Byte