|
发表于 2007-7-23 14:37:07
|
显示全部楼层
来自: 中国浙江宁波
(Defun C:phyhar (/ code code Drives lstSer StrDrive SerialNumber)0 n6 w# W: a& y Y' d
(vl-load-com)! _* i, g S; S1 M, P: z
(setq code "C" ; c4 J# j+ Z/ o& ~# a
(setq FSO (vlax-create-object "Scripting.FileSystemObject"): U9 G& Q) G/ O; ]; v! a
Drives (vlax-get-property FSO "Drives")
& E6 @5 Z. K. d+ Y9 @# X)2 d; I3 j, @* d, e0 x; N
(setq lstSer '())7 r6 l+ D( |4 U
;; iterator the HardDisk for the SerialNumber .' `, d8 u ^0 I. @4 D# s
;;;(repeat (vlax-get-property Drives "Count") 注释掉此行
' j( J% I8 G8 { }) _: `(setq StrDrive (strcat code ":"))& c& U2 j0 u/ T4 x' Q9 m' J) W5 b
(if (and (setq Drive (vl-catch-all-apply 'vlax-get-property (list Drives "Item" StrDrive)))0 Y$ n' t3 [2 [: a: j( C# Z
(not (vl-catch-all-error-p Drive))9 ~* l8 S4 c2 [: W K
(vlax-property-available-p Drive "DriveType")' F! e" X5 L" h; B; I d
(equal (vlax-get-property Drive "DriveType") 2)
$ N7 P2 }$ j$ t2 z( v; L(vlax-property-available-p Drive "SerialNumber")
+ N+ G' F. n9 T, p1 r# X5 t9 a(setq SerialNumber (vlax-get-property Drive "SerialNumber"))
! R' d% b0 O6 _5 z6 a a)/ y! f7 `; o' C4 X( z6 t$ I
(setq SerialNumber (rtos SerialNumber 2 0)6 M7 Q, S) X! s! ~6 v' f* v1 O
lstSer (cons (list StrDrive SerialNumber) lstSer)) W2 i2 L) u2 d2 o% j6 D
)- w8 t e7 \2 S
)3 v7 t: o: }: c
;;;(setq code (chr (1+ (ascii code)))) 注释掉此行7 s' V& m# C- h; ~$ Y
;;;) 注释掉此行
6 O, T% I3 ?) S8 [# ?: x;; relese object .
5 H M! Z% q6 W* E- K! ]3 d% J4 o/ ~(vl-catch-all-apply 'vlax-release-object (list FSO))9 @$ A! r! L1 M+ R" U$ E
(vl-catch-all-apply 'vlax-release-object (list Drives))/ p& g# G8 g9 n# L
;; return the value .1 b6 h* z& S% h7 L; x) o4 o
(princ(reverse lstSer))7 e* C) l/ j( o; s. G( u0 z
)2 W/ |) h3 M! c- H2 F+ D6 C
7 ]# f/ T, Z* ^. R1 {) y
) Z5 N" ^6 Z9 B9 ~1 v" ~1 V0 j你把循环部分注释掉,不就只得到C盘的SN了吗?
/ N% Q L) a) H, K( {
2 ] u7 F( H; H: y( b0 ?3 n. K) k[ 本帖最后由 sealive_leafage 于 2007-7-23 14:39 编辑 ] |
|