|
发表于 2007-7-23 14:37:07
|
显示全部楼层
来自: 中国浙江宁波
(Defun C:phyhar (/ code code Drives lstSer StrDrive SerialNumber)
d' q( k- S+ n$ W(vl-load-com): y1 A9 }+ f. J, T" w5 x
(setq code "C"
+ H; O0 ^& p0 k I( Z0 q(setq FSO (vlax-create-object "Scripting.FileSystemObject")8 C# e0 J. n9 U: H, C
Drives (vlax-get-property FSO "Drives")/ L, r' R0 m2 i7 h2 g
)
; A u- [# e) I* M(setq lstSer '())
% {1 |7 o$ p) [# ~6 `. [;; iterator the HardDisk for the SerialNumber .4 x x2 c8 ~; ~8 ]+ b' @% e
;;;(repeat (vlax-get-property Drives "Count") 注释掉此行
. a/ K9 W6 Q8 d' t(setq StrDrive (strcat code ":"))
5 P# j$ a7 j: J& M" l/ T3 Z(if (and (setq Drive (vl-catch-all-apply 'vlax-get-property (list Drives "Item" StrDrive)))3 m6 h0 o8 r: V/ a# P
(not (vl-catch-all-error-p Drive)), r) w* U) p+ m# e0 V
(vlax-property-available-p Drive "DriveType")
& j8 ~) ^& s. u! x( V: T(equal (vlax-get-property Drive "DriveType") 2)
% N) c) A! R \3 r" O$ K7 Y- o* T(vlax-property-available-p Drive "SerialNumber")
3 W- p% ]% A& [% d9 ^$ Z" i(setq SerialNumber (vlax-get-property Drive "SerialNumber"))
0 Z/ k& l0 X; F6 _+ Y)3 D* @9 N& g8 x5 I
(setq SerialNumber (rtos SerialNumber 2 0)
" l7 k$ B. E; j5 z& k' [lstSer (cons (list StrDrive SerialNumber) lstSer)% u3 B5 u0 b# y# G3 c
)
5 h) g! {# A% U3 j( H7 g)
5 J% O$ H8 v0 u7 p# U" r( D h3 b;;;(setq code (chr (1+ (ascii code)))) 注释掉此行2 R) b8 U- b: b
;;;) 注释掉此行1 Y" Q* w5 }4 ~
;; relese object .
6 y! ^4 F8 G9 E3 b) v$ x! a) u& o(vl-catch-all-apply 'vlax-release-object (list FSO))
# }! g; U1 [, A+ {(vl-catch-all-apply 'vlax-release-object (list Drives))/ \: {3 n6 {/ l4 H
;; return the value .( |) |# O8 L, j' T
(princ(reverse lstSer))1 a8 M; G( j+ L X; A# z- j# |
)' b! W3 }- Z" Q* h
# `3 ^) r) t: v2 `3 K6 w; X: J
% v. a7 {3 F$ Z; e! @- u, W
你把循环部分注释掉,不就只得到C盘的SN了吗? O, y8 l3 Z, o" Y
9 C: m; x- |' }1 b[ 本帖最后由 sealive_leafage 于 2007-7-23 14:39 编辑 ] |
|