|
|
发表于 2007-7-23 14:37:07
|
显示全部楼层
来自: 中国浙江宁波
(Defun C:phyhar (/ code code Drives lstSer StrDrive SerialNumber)
4 j$ a& R' n6 G(vl-load-com)( H- p1 v H% |: {/ \1 `- }
(setq code "C" ) Y' Y' H8 S8 V4 n0 K* |- k) w! t
(setq FSO (vlax-create-object "Scripting.FileSystemObject")+ K5 p* _( n1 m9 D
Drives (vlax-get-property FSO "Drives")9 v( z8 t5 |, |
)7 L4 v0 W# B+ s7 ~
(setq lstSer '()): Q: G) \3 ]. @# c2 M
;; iterator the HardDisk for the SerialNumber .
' I) g$ `1 F5 F, x2 Y+ L$ V;;;(repeat (vlax-get-property Drives "Count") 注释掉此行
, S, ~1 ]( I, c: T; R8 `$ w(setq StrDrive (strcat code ":"))
7 |+ o! I0 X3 a+ m6 c3 I, n(if (and (setq Drive (vl-catch-all-apply 'vlax-get-property (list Drives "Item" StrDrive)))
7 o( m! h; |1 S0 D. f' Q3 r5 a6 ^& X0 r$ n6 |(not (vl-catch-all-error-p Drive))
2 `) _+ H" t* U8 k(vlax-property-available-p Drive "DriveType")& r# p2 s2 u" p7 ^6 d# L
(equal (vlax-get-property Drive "DriveType") 2)
! T6 i% q4 F0 }' x2 B(vlax-property-available-p Drive "SerialNumber")
5 x6 J' |. }' l, ~9 s% N" D(setq SerialNumber (vlax-get-property Drive "SerialNumber"))
8 }2 W: L c4 [6 F5 c)
2 v& g: W; N0 H1 n(setq SerialNumber (rtos SerialNumber 2 0); F J2 ~6 \0 J/ D) Q& U( G
lstSer (cons (list StrDrive SerialNumber) lstSer)$ C7 Z/ |# h; i5 ~ O1 H
)
% |! l; V7 Y1 I; \, K3 z)
+ `9 u4 }4 `& O; H# J8 `' a5 U;;;(setq code (chr (1+ (ascii code)))) 注释掉此行/ P/ S. m, N- z" V3 M% ?: ]; a# q3 \
;;;) 注释掉此行" i/ H% V# ]# f" o4 X8 \
;; relese object .! X- R* f. M" h4 T1 _: L/ k
(vl-catch-all-apply 'vlax-release-object (list FSO))
! ?0 q7 P& ?) v% R* u7 d(vl-catch-all-apply 'vlax-release-object (list Drives))
6 ~# O1 b& j% _3 \5 y/ s9 U5 j; N;; return the value .
4 q! m8 t% i8 i0 Q9 h* U(princ(reverse lstSer))- l' G' r, G4 \8 m7 S
)/ a, S, P. ?0 ], Q( V8 Z
/ }- Y3 R8 B( s* |+ n3 g! V+ r1 A, d+ x
你把循环部分注释掉,不就只得到C盘的SN了吗? i# |0 ~1 R8 r2 g& _. J
" w6 _9 f% b% v g/ |% [
[ 本帖最后由 sealive_leafage 于 2007-7-23 14:39 编辑 ] |
|