|
|
发表于 2007-7-23 14:37:07
|
显示全部楼层
来自: 中国浙江宁波
(Defun C:phyhar (/ code code Drives lstSer StrDrive SerialNumber)& a" ^4 C5 r8 y
(vl-load-com)
6 O; j; a2 X( F(setq code "C" & F$ E0 {* I! N: { H# [
(setq FSO (vlax-create-object "Scripting.FileSystemObject")* ?) }4 ~9 B% p0 b1 O
Drives (vlax-get-property FSO "Drives")
: U: J) I; h/ @8 V)/ \- o; Y: c3 f
(setq lstSer '())- A$ x4 n- q3 Y. F8 n2 F* U0 c6 z8 A
;; iterator the HardDisk for the SerialNumber .5 }+ R& S" G% Q: |' `; K
;;;(repeat (vlax-get-property Drives "Count") 注释掉此行
2 K" f: i8 C! @4 c! { {3 j(setq StrDrive (strcat code ":"))
- |% W. J/ A4 x" G( b(if (and (setq Drive (vl-catch-all-apply 'vlax-get-property (list Drives "Item" StrDrive)))
) {* T& g2 L& i* H( H4 Q(not (vl-catch-all-error-p Drive))4 y: @6 e+ k% i
(vlax-property-available-p Drive "DriveType")
9 g) w! ^ [" x* ~(equal (vlax-get-property Drive "DriveType") 2)
; _/ y2 S. E& j2 h; k2 b" d(vlax-property-available-p Drive "SerialNumber"), Z7 }# N" ^0 J, d( R
(setq SerialNumber (vlax-get-property Drive "SerialNumber"))
' R9 S6 r1 h3 l! n4 F& t)+ X# P% Z" Q5 z) ^
(setq SerialNumber (rtos SerialNumber 2 0)' P `' m: t0 i% z( V
lstSer (cons (list StrDrive SerialNumber) lstSer)
! G9 t( w9 z$ e( \; H7 g)
7 o# q! C8 E N0 a): g+ c6 c, ]9 W! i( V* \) `' x+ P+ q |
;;;(setq code (chr (1+ (ascii code)))) 注释掉此行7 |8 [ Y7 c" |9 ^
;;;) 注释掉此行9 E5 _1 S' W9 f9 j
;; relese object .( i+ z4 t) ?* _9 Y+ C# O
(vl-catch-all-apply 'vlax-release-object (list FSO))" s! T9 n- m8 ?
(vl-catch-all-apply 'vlax-release-object (list Drives))
g0 @, G, j* c9 W;; return the value .
4 B' M9 u% f) |* W(princ(reverse lstSer))5 V! ^! Y4 u9 Q6 R& j+ G
), a' ? _. p) ?' T+ x4 K# N- @" G7 r
- }3 \9 O$ M! d0 {4 g
& l4 T h0 d* t2 M6 f" _6 F. b
你把循环部分注释掉,不就只得到C盘的SN了吗?- K5 m+ V o) e* C
) p/ i% ~/ q' y [( S3 ]- c
[ 本帖最后由 sealive_leafage 于 2007-7-23 14:39 编辑 ] |
|