|
|

楼主 |
发表于 2020-4-6 17:27:10
|
显示全部楼层
技巧183 使用API取得硬盘信息* _( O& n1 Q$ M/ T
5 y V+ ]; \/ K+ K. h- Private Const MAX_IDE_DRIVES As Long = 4
! E7 L) D9 F) d# n - Private Const READ_ATTRIBUTE_BUFFER_SIZE As Long = 512
( t( J) T# K; G7 S. d+ J/ p - Private Const IDENTIFY_BUFFER_SIZE As Long = 5126 ]$ e7 x3 p- d/ S9 r2 I2 i# f. R2 T+ I
- Private Const READ_THRESHOLD_BUFFER_SIZE As Long = 5126 |1 b# m3 O$ X+ w# T3 \4 |# L2 m
- Private Const DFP_GET_VERSION As Long = &H74080
- O" B$ d' v* N, O) x- ]' A - Private Const DFP_SEND_DRIVE_COMMAND As Long = &H7C084. v' M& [. X; J- \* O& s4 f, i
- Private Const DFP_RECEIVE_DRIVE_DATA As Long = &H7C088
% i; I# G: g6 {8 m- j& L0 [ - ' ……代码略,详见附件
2 y+ K+ U. I' [3 Z7 [* K7 t - '取得硬盘信息:型号/物理系列号(唯一)
, ^$ L, j# A4 A& v' `, J% v - Function GetHardDiskInfo(Optional ByVal numDisk As eumDiskNo = hdPrimaryMaster, Optional ByVal numType As eumInfoType = hdOnlySN) As String; q; n O- F7 f$ i m/ J
- If GetDiskInfo(numDisk) = 1 Then0 M8 K* ?# H: r& \. Y7 d1 J
- Dim pSerialNumber As String, pModelNumber As String) L0 n- t! _* ^- v! |" N
- pSerialNumber = StrConv(m_DiskInfo.sSerialNumber, vbUnicode)
$ E( ~. F& R7 Q! ]7 Z& u4 | - pModelNumber = StrConv(m_DiskInfo.sModelNumber, vbUnicode)
' [# b0 d5 G- p - Select Case numType
e' e$ O# v- Q- Q* l& ] - Case hdOnlyModel '仅型号
% t9 L' j3 q- {& o+ t - GetHardDiskInfo = Trim(pModelNumber)
6 ]5 M* _5 T% B& y9 @* ?$ T, y - Case hdOnlySN '仅系列号
, @8 L, A, u; K# l2 K q4 s - GetHardDiskInfo = Trim(pSerialNumber), d) \( l0 U3 ]! e+ x- M1 m
- Case Else '型号,系列号
1 {; L, x5 n7 E3 X - GetHardDiskInfo = Trim(pModelNumber) & "," & Trim(pSerialNumber)
( K W/ O+ E9 j* k# I - End Select( @: J/ k4 B% K& F( h
- End If
: i7 A* m7 K5 } - End Function
复制代码- Sub DiskId()
) F! r' ^! @, N ^) `" l% O - MsgBox "硬盘的物理系列号:" & GetHardDiskInfo(hdPrimaryMaster, hdOnlySN) _" c1 o: i' e- W: ~* i' r2 g
- & Chr(13) & "C盘的序列号:" & GetDiskVolume("C")
4 z7 y# F4 G, R - End Sub
! ? l# P; V e& r, d3 ]3 Q
复制代码 取得硬盘物理序号
diskid.xls
(78 KB, 下载次数: 0, 售价: 10 个金币)
7 I; r: H3 Y7 F c" k7 O2 O6 G+ [+ x8 U: _, p: y& d
|
|