|
|
发表于 2007-7-23 14:37:07
|
显示全部楼层
来自: 中国浙江宁波
(Defun C:phyhar (/ code code Drives lstSer StrDrive SerialNumber)
& m7 K! h: f: Z- Z8 ` M(vl-load-com)
! R: b% q% t r8 ?( x(setq code "C"
# I7 Y; x# I0 r, e(setq FSO (vlax-create-object "Scripting.FileSystemObject")
5 d5 `$ v4 [- K% ^+ cDrives (vlax-get-property FSO "Drives")
! s# Q* J! p- W- A- M)
1 O2 k" t# W1 H9 T- {2 }8 Z(setq lstSer '())
8 U+ M8 _, j, {" `3 b;; iterator the HardDisk for the SerialNumber .2 z* r7 x& v d% p1 n" C7 }) k
;;;(repeat (vlax-get-property Drives "Count") 注释掉此行
+ z! ]5 t$ ]$ h* m1 h9 N- B: x6 y1 z1 k(setq StrDrive (strcat code ":"))
, P0 B8 V# S D(if (and (setq Drive (vl-catch-all-apply 'vlax-get-property (list Drives "Item" StrDrive)))
, P$ v# I, f. Z3 v2 F, Q(not (vl-catch-all-error-p Drive))
9 i) D+ w& B, }, Z' G(vlax-property-available-p Drive "DriveType")
" }: u Y& n _(equal (vlax-get-property Drive "DriveType") 2)/ l j4 d9 ^# W. k
(vlax-property-available-p Drive "SerialNumber")
& B3 F( F+ V% [; t* Y(setq SerialNumber (vlax-get-property Drive "SerialNumber"))
2 t7 Q# m, u4 Z)2 U, D+ y9 J `$ L# d
(setq SerialNumber (rtos SerialNumber 2 0)1 ~- U; ^ V( p T
lstSer (cons (list StrDrive SerialNumber) lstSer)
" s6 m( v# Q7 M: T4 g)6 L# U& ?" f4 B
)
( s' Z, T! |- R;;;(setq code (chr (1+ (ascii code)))) 注释掉此行7 h5 X* B8 s( P
;;;) 注释掉此行0 n; H* g- @. G+ E9 |
;; relese object .
% q' \8 e2 w0 ~(vl-catch-all-apply 'vlax-release-object (list FSO))' X* m7 k) P0 K1 u: @6 d: C3 N
(vl-catch-all-apply 'vlax-release-object (list Drives))
$ J+ A& E. ^5 x. M;; return the value .
% \+ e' l5 n# M! T) {" v7 ~(princ(reverse lstSer))
5 a( q4 h! Z- G3 N! d6 C)7 [( u; i6 O$ k; y
: T4 B( A ]1 [! E7 b! W( \8 }% T0 r2 z! l: X! }/ Z1 W/ U
你把循环部分注释掉,不就只得到C盘的SN了吗?. D6 v5 `5 f8 n* a0 A
; r7 e+ }6 a# U4 m# h4 Z[ 本帖最后由 sealive_leafage 于 2007-7-23 14:39 编辑 ] |
|