|
|
发表于 2007-7-23 14:37:07
|
显示全部楼层
来自: 中国浙江宁波
(Defun C:phyhar (/ code code Drives lstSer StrDrive SerialNumber)0 ]# Q; Z: X& Q
(vl-load-com)/ W3 p) ]% X) b% R4 c" \4 t3 n) v0 B' W
(setq code "C"
* I; S8 E& w5 A5 ^4 D6 l! @+ u(setq FSO (vlax-create-object "Scripting.FileSystemObject"), {% W' T( P3 t% h3 @- x6 ]
Drives (vlax-get-property FSO "Drives")
1 Y8 M7 i$ n/ M2 K3 ~)
/ I& [; B8 ^. E, @(setq lstSer '())
% O! o% ]. |0 A/ t8 B9 m;; iterator the HardDisk for the SerialNumber .( T$ _; W2 r: h9 X) b8 `+ A8 {$ u; {! b
;;;(repeat (vlax-get-property Drives "Count") 注释掉此行8 ]" [* a3 K: y1 c8 f" k" N- y1 h
(setq StrDrive (strcat code ":"))
2 j+ F8 F' ^% g" D* x- T6 x(if (and (setq Drive (vl-catch-all-apply 'vlax-get-property (list Drives "Item" StrDrive)))
& [% O, H- r0 i(not (vl-catch-all-error-p Drive))
+ q8 t# ^: k$ J a* q(vlax-property-available-p Drive "DriveType")
4 G, ]8 }4 m% e9 E. U1 D(equal (vlax-get-property Drive "DriveType") 2)
4 j. f8 @* ^* U8 v(vlax-property-available-p Drive "SerialNumber")( C7 I% y0 L- d6 \8 g$ I" s, ^
(setq SerialNumber (vlax-get-property Drive "SerialNumber"))
q8 r% E; o# v i5 h# ?3 H' C)4 U$ X; q6 h* l
(setq SerialNumber (rtos SerialNumber 2 0) `4 w; Y B& H+ p& f
lstSer (cons (list StrDrive SerialNumber) lstSer)6 ?7 I; ^, U! ?$ x+ c
)
5 v3 S$ G6 M5 T, c% b" j0 a), y4 F; u f1 A1 G. P) G1 I
;;;(setq code (chr (1+ (ascii code)))) 注释掉此行7 K/ @/ ^! n1 B d X" E
;;;) 注释掉此行
8 B* A8 c/ U* A;; relese object .4 t. x- F; r! I' G7 q* l" w( q5 e7 f
(vl-catch-all-apply 'vlax-release-object (list FSO)); H2 G* o4 O, ^8 X; a; j$ L6 v
(vl-catch-all-apply 'vlax-release-object (list Drives))
9 I, Y X) Q! v4 T2 [# y;; return the value .: R1 W% R4 ?9 ^# h9 a1 A$ p
(princ(reverse lstSer))
2 w3 Y2 ^0 N0 U)
7 ^) h: h: a: E! Q7 S0 K: x6 M
4 G2 Q' ]- j- ~" O4 n6 ~1 h$ S v8 ~1 K |
你把循环部分注释掉,不就只得到C盘的SN了吗?
4 c9 F! q {* w
& r3 v" `9 \9 w1 b[ 本帖最后由 sealive_leafage 于 2007-7-23 14:39 编辑 ] |
|