|
|

楼主 |
发表于 2020-4-6 17:27:10
|
显示全部楼层
技巧183 使用API取得硬盘信息! V4 N' k* u2 j( t. o# g
% G4 s1 ^! d" ?* q' G- Private Const MAX_IDE_DRIVES As Long = 45 ~) L& F4 T: C9 K6 M
- Private Const READ_ATTRIBUTE_BUFFER_SIZE As Long = 512
, ]4 t0 O5 p& a5 P% @ - Private Const IDENTIFY_BUFFER_SIZE As Long = 512: o7 [0 }) \8 u, {# e& c" f
- Private Const READ_THRESHOLD_BUFFER_SIZE As Long = 512' _4 g, c$ Y) }0 V4 r
- Private Const DFP_GET_VERSION As Long = &H740803 z$ i0 @8 E7 Z
- Private Const DFP_SEND_DRIVE_COMMAND As Long = &H7C084" ?3 L, Q( Z/ p5 |5 c1 Q# h2 c6 c
- Private Const DFP_RECEIVE_DRIVE_DATA As Long = &H7C088
- I. Q3 n1 W% x+ w - ' ……代码略,详见附件
7 u Z: Z3 m! E1 z3 v0 [0 s! ] - '取得硬盘信息:型号/物理系列号(唯一)
" f8 K6 o C0 b1 [; V8 c5 h4 J - Function GetHardDiskInfo(Optional ByVal numDisk As eumDiskNo = hdPrimaryMaster, Optional ByVal numType As eumInfoType = hdOnlySN) As String W: ]+ r1 i/ Z- L( r
- If GetDiskInfo(numDisk) = 1 Then# ~: i6 L9 f, C U0 |
- Dim pSerialNumber As String, pModelNumber As String
1 h/ v# Y7 @5 S" j; X - pSerialNumber = StrConv(m_DiskInfo.sSerialNumber, vbUnicode)
: G4 f5 {2 B( c; E* _: j/ Q- J - pModelNumber = StrConv(m_DiskInfo.sModelNumber, vbUnicode)
3 s. g! v* |3 d - Select Case numType6 `7 j% E. O( N# X: a6 p/ Z7 c
- Case hdOnlyModel '仅型号& x# x* f/ Q' @7 S
- GetHardDiskInfo = Trim(pModelNumber)- j6 R) h) h( F! N! k
- Case hdOnlySN '仅系列号' _" ]: \, K! |/ ?
- GetHardDiskInfo = Trim(pSerialNumber)9 E- T, h) `. V H% Z% j
- Case Else '型号,系列号; S5 m. A( K; b" v
- GetHardDiskInfo = Trim(pModelNumber) & "," & Trim(pSerialNumber)
/ [! _% C+ P3 g: J8 J* e0 e9 A - End Select) r* X9 O' V7 a9 C
- End If* T# M$ t8 }0 b( Q1 L
- End Function
复制代码- Sub DiskId()
) d0 F$ a! k/ O! @( e2 E- Y - MsgBox "硬盘的物理系列号:" & GetHardDiskInfo(hdPrimaryMaster, hdOnlySN) _
+ Q: H6 ~4 @2 n5 V0 L - & Chr(13) & "C盘的序列号:" & GetDiskVolume("C")
- F& G# F" q/ d3 e9 \9 B9 O- K - End Sub
4 }5 }; z ]+ g" a, ~* Z1 o
复制代码 取得硬盘物理序号
diskid.xls
(78 KB, 下载次数: 0, 售价: 10 个金币)
) E+ [' E. r0 k& C- o
* K: g+ ` z+ X" v
|
|