|
|
发表于 2007-7-23 14:37:07
|
显示全部楼层
来自: 中国浙江宁波
(Defun C:phyhar (/ code code Drives lstSer StrDrive SerialNumber)
# [2 M% l7 r1 A3 ?) b( h% M( f W(vl-load-com)
+ n5 H" F4 D" w H" A( b$ Z6 S% Q$ N3 D(setq code "C"
) D7 O5 B- |% m# p3 p(setq FSO (vlax-create-object "Scripting.FileSystemObject")( M" l& l, A0 S( W$ I
Drives (vlax-get-property FSO "Drives")
$ F0 W! W5 J6 m7 z4 {$ k)/ z+ r; b2 K( z& B+ O/ B3 h+ Y y
(setq lstSer '()) y2 X# C0 P7 `
;; iterator the HardDisk for the SerialNumber .
7 Q/ _) l$ K% H+ T/ A;;;(repeat (vlax-get-property Drives "Count") 注释掉此行1 E; ?* k; S! ? g8 N' @; h6 q
(setq StrDrive (strcat code ":"))- r: c9 A. K) d e, X
(if (and (setq Drive (vl-catch-all-apply 'vlax-get-property (list Drives "Item" StrDrive)))
% x1 ^8 D1 s- \6 C(not (vl-catch-all-error-p Drive)). i- k2 o8 |* M" _
(vlax-property-available-p Drive "DriveType")
4 v2 i& J; H3 j# r(equal (vlax-get-property Drive "DriveType") 2); b, k& o6 |+ ^) f
(vlax-property-available-p Drive "SerialNumber")
( F. w4 F' _; o# K, p8 S! c8 w' z(setq SerialNumber (vlax-get-property Drive "SerialNumber"))6 I$ \- y6 t) z7 X8 v% _
)/ ~) M( P' _1 Q( { j
(setq SerialNumber (rtos SerialNumber 2 0)8 J* c4 i0 F+ N7 U% A v [
lstSer (cons (list StrDrive SerialNumber) lstSer)
0 f3 z+ y! v% e1 h1 U)! O. l% L. Q% T" `
)6 A" H+ A/ D+ A" Y" \
;;;(setq code (chr (1+ (ascii code)))) 注释掉此行
: I9 ]" z2 w3 I( n" s0 r; ?;;;) 注释掉此行
% P1 U: u8 X. q& x9 }3 m, c W;; relese object .
?7 R0 A* @- b/ z(vl-catch-all-apply 'vlax-release-object (list FSO))9 L2 Y8 ^) U3 U" ], L6 p* }
(vl-catch-all-apply 'vlax-release-object (list Drives))
1 w$ N' V8 M; _8 J# |6 d+ D" e;; return the value .
; `, U; D4 E$ G- l+ F' f1 K$ G/ D(princ(reverse lstSer))+ J: `0 m2 R( {+ y: z
)
. k5 U' H. f4 |; o% J8 Q8 i% K* E0 {# l" |2 q+ k5 l2 P
* w$ c6 D O( @( h$ T
你把循环部分注释掉,不就只得到C盘的SN了吗?' |9 H) C2 [! ~* D$ j# S
4 S7 P7 M0 f& j* T[ 本帖最后由 sealive_leafage 于 2007-7-23 14:39 编辑 ] |
|