|
发表于 2007-7-23 14:37:07
|
显示全部楼层
来自: 中国浙江宁波
(Defun C:phyhar (/ code code Drives lstSer StrDrive SerialNumber)! c0 U* ?5 S4 p) _- s1 E
(vl-load-com)
$ \ }, T* j! | ]1 n% b; m6 [(setq code "C" 2 ]) }$ K \1 r, x
(setq FSO (vlax-create-object "Scripting.FileSystemObject")6 U) H2 t6 o3 `0 z* g
Drives (vlax-get-property FSO "Drives") x: _! ]2 o( A9 V7 G4 }# [1 V
)$ V- z0 F6 n- y% ^
(setq lstSer '()): Z- @$ ?- w1 E9 e8 k6 ]
;; iterator the HardDisk for the SerialNumber .$ n0 T4 s6 _- E, \+ x
;;;(repeat (vlax-get-property Drives "Count") 注释掉此行# Z3 l7 Q K& O' f m& w
(setq StrDrive (strcat code ":"))' h1 g& w4 ~1 ~! u( |
(if (and (setq Drive (vl-catch-all-apply 'vlax-get-property (list Drives "Item" StrDrive)))
8 m8 h* |9 ]& \+ ^(not (vl-catch-all-error-p Drive))2 h5 {$ s& o! d8 L" v" `* v
(vlax-property-available-p Drive "DriveType")4 O& L2 q; `! m7 K
(equal (vlax-get-property Drive "DriveType") 2)
( O! i' d) |8 S/ l* Y(vlax-property-available-p Drive "SerialNumber")
2 }0 r& Z) s3 U9 F- T(setq SerialNumber (vlax-get-property Drive "SerialNumber"))
9 F2 n9 ~9 `" O; s, O). x! @/ u) C# G3 ?9 v( j* O+ @
(setq SerialNumber (rtos SerialNumber 2 0)! y, a7 ]1 `, m, `( f$ i
lstSer (cons (list StrDrive SerialNumber) lstSer); N5 L+ Y4 K) S2 B# C( T
)
0 |5 i5 `3 P5 k), ?: B% ^8 D# f6 k, N
;;;(setq code (chr (1+ (ascii code)))) 注释掉此行6 {8 M8 I9 l, J! ?
;;;) 注释掉此行* d/ ]# w" h k3 ~# x8 z" Q
;; relese object .
; P! y( X. p3 s& ~, x, i% t% I(vl-catch-all-apply 'vlax-release-object (list FSO))
, d6 P, {6 ?0 [0 I' R1 Q$ _(vl-catch-all-apply 'vlax-release-object (list Drives))
W: L5 q' Y- D4 P! q: X;; return the value .
& V2 q7 \2 X: F: B8 t# k# [/ x( o(princ(reverse lstSer))* l) U6 |9 v l" w
)) h7 a2 g" Q# O" H7 d M1 J
8 c' C9 a* L, e+ t
4 n+ B6 f6 b0 K$ X你把循环部分注释掉,不就只得到C盘的SN了吗?& y' l7 Z" m& [1 |- Q- z
3 c& }5 r% m+ |9 x
[ 本帖最后由 sealive_leafage 于 2007-7-23 14:39 编辑 ] |
|