|
|

楼主 |
发表于 2020-4-6 17:27:10
|
显示全部楼层
技巧183 使用API取得硬盘信息. H$ ?0 Y& m/ T1 d
2 N5 d) H% b/ I: z$ D" H. S
- Private Const MAX_IDE_DRIVES As Long = 4
" C, `2 k1 V7 l* B c# f) ~. O+ P- W - Private Const READ_ATTRIBUTE_BUFFER_SIZE As Long = 5129 X; ?/ B- k( p# S# [: w: s# f1 p
- Private Const IDENTIFY_BUFFER_SIZE As Long = 5127 C/ T! W/ _8 j8 @- [
- Private Const READ_THRESHOLD_BUFFER_SIZE As Long = 512' O8 V3 Q$ K9 p6 x4 j0 {- U
- Private Const DFP_GET_VERSION As Long = &H740802 F/ y- A6 X+ N4 \2 H2 @
- Private Const DFP_SEND_DRIVE_COMMAND As Long = &H7C084% L# R+ I+ t5 N: y3 B( B, T
- Private Const DFP_RECEIVE_DRIVE_DATA As Long = &H7C088
4 H! s! n( P, t6 H" s$ _5 ^! O. S - ' ……代码略,详见附件: p, X; h0 N/ n' D k; |# l7 y- H
- '取得硬盘信息:型号/物理系列号(唯一)
. ~/ f9 a! e, O" ]4 z* P/ D! o - Function GetHardDiskInfo(Optional ByVal numDisk As eumDiskNo = hdPrimaryMaster, Optional ByVal numType As eumInfoType = hdOnlySN) As String4 L9 p6 w7 r# g5 O9 ]/ o4 a7 @; O' ]
- If GetDiskInfo(numDisk) = 1 Then
" b% W0 M& Q# V. O5 c! E( s$ U - Dim pSerialNumber As String, pModelNumber As String
) n) D! I0 }, A, d - pSerialNumber = StrConv(m_DiskInfo.sSerialNumber, vbUnicode)
6 G/ w+ z2 Z$ Y( G. f - pModelNumber = StrConv(m_DiskInfo.sModelNumber, vbUnicode). q* v8 Q. b+ h% A. {" r
- Select Case numType
0 G3 _) q; K: Y6 M/ t: Q - Case hdOnlyModel '仅型号& F K7 x' p5 i% b- b3 q6 C
- GetHardDiskInfo = Trim(pModelNumber)
' _" }$ P! N9 ?3 g4 j: w - Case hdOnlySN '仅系列号6 x% a% ]* H+ \( x; v0 t
- GetHardDiskInfo = Trim(pSerialNumber)
. Z& J" E, l- S% n8 c& \: N9 F. l - Case Else '型号,系列号, J0 K+ n( A. [. H7 G* S
- GetHardDiskInfo = Trim(pModelNumber) & "," & Trim(pSerialNumber)
5 E2 ~1 z) L5 x# u- r* D$ M1 T8 k/ Z9 J0 { - End Select
( H+ b- ~; P1 Q9 B* I - End If
5 x- n+ H) b% ? - End Function
复制代码- Sub DiskId(): q7 U+ a+ ~# E* w
- MsgBox "硬盘的物理系列号:" & GetHardDiskInfo(hdPrimaryMaster, hdOnlySN) _
$ R; v. I6 e# I! T' E2 E" n - & Chr(13) & "C盘的序列号:" & GetDiskVolume("C")
5 x0 R6 q( e- H6 p3 _2 U - End Sub
% F) ]$ e) L& ~% J" T+ \
复制代码 取得硬盘物理序号
diskid.xls
(78 KB, 下载次数: 0, 售价: 10 个金币)
9 A4 ]* z2 Z& v$ F) m
" o+ ?9 I- l2 F) a( H4 g |
|