|
|

楼主 |
发表于 2020-4-6 17:27:10
|
显示全部楼层
技巧183 使用API取得硬盘信息$ G0 O" i4 S- m
0 v# `" D/ f0 o8 O( U) n5 \
- Private Const MAX_IDE_DRIVES As Long = 4
3 M* @9 g1 Z5 z' S& d - Private Const READ_ATTRIBUTE_BUFFER_SIZE As Long = 512
$ A) I6 w7 ~9 [ z) M - Private Const IDENTIFY_BUFFER_SIZE As Long = 512. u. `3 q% D3 M8 Z, W7 L+ V
- Private Const READ_THRESHOLD_BUFFER_SIZE As Long = 512' t& u5 H6 I7 \# i! u; l% R5 i' O
- Private Const DFP_GET_VERSION As Long = &H74080
5 T$ D8 S* ~4 {4 V' C5 R - Private Const DFP_SEND_DRIVE_COMMAND As Long = &H7C084/ O( t! d% x/ K. U' C" w$ x& Z
- Private Const DFP_RECEIVE_DRIVE_DATA As Long = &H7C088
/ m$ X0 v3 ?4 ~8 Y% |3 n - ' ……代码略,详见附件8 }9 V. F2 j) M1 k6 y
- '取得硬盘信息:型号/物理系列号(唯一)" j8 {+ { y- N( F" X
- Function GetHardDiskInfo(Optional ByVal numDisk As eumDiskNo = hdPrimaryMaster, Optional ByVal numType As eumInfoType = hdOnlySN) As String
+ \. g. v; E; J1 Y& w' L5 g+ [ - If GetDiskInfo(numDisk) = 1 Then
" p; L9 t, P" ^4 @" {2 ^ - Dim pSerialNumber As String, pModelNumber As String+ \& `) a5 l1 F. I& ?$ f
- pSerialNumber = StrConv(m_DiskInfo.sSerialNumber, vbUnicode)
+ [5 |8 t, k G* ~4 x - pModelNumber = StrConv(m_DiskInfo.sModelNumber, vbUnicode)
V- C4 j$ g* s- M: L - Select Case numType
& q$ Q; g% G& q. p( _! `) l - Case hdOnlyModel '仅型号
4 K6 [. K: x, A4 l+ G3 p - GetHardDiskInfo = Trim(pModelNumber)
4 w a; c( V7 b6 k - Case hdOnlySN '仅系列号
0 H/ x9 k: o! K A - GetHardDiskInfo = Trim(pSerialNumber)
, [9 _8 a R. D: B9 ^* f1 ^ - Case Else '型号,系列号
L) `/ r$ V3 l - GetHardDiskInfo = Trim(pModelNumber) & "," & Trim(pSerialNumber)9 J; N: O; G! e5 H3 A
- End Select
- G) P& l& r4 p; ~% X- q - End If1 O: R7 t% J: J% S( c
- End Function
复制代码- Sub DiskId()
4 W4 f. y( q7 O" { - MsgBox "硬盘的物理系列号:" & GetHardDiskInfo(hdPrimaryMaster, hdOnlySN) _% \5 l; L: q4 S% H
- & Chr(13) & "C盘的序列号:" & GetDiskVolume("C") V1 {0 x: u, K# H3 t- \( f$ l' Z
- End Sub
4 x+ ~( O, u& T# o5 z) h
复制代码 取得硬盘物理序号
diskid.xls
(78 KB, 下载次数: 0, 售价: 10 个金币)
0 e2 F1 S% Z) Z9 T9 g# ]& {9 v$ A w- D
|
|