lph960405 发表于 2007-7-22 15:18:00

[求助]怎样写关于读取硬盘号的LISP函数

本帖最后由 作者 于 2007-7-22 15:18:43 编辑 <br /><br /> <p>怎样写关于读取硬盘号的LISP函数</p><p><br/><font face="宋体" size="2">(Defun C:phyhar (/ code code Drives lstSer StrDrive SerialNumber)<br/>(vl-load-com)<br/>(setq code "C")<br/>(setq FSO (vlax-create-object "Scripting.FileSystemObject")<br/>Drives (vlax-get-property FSO "Drives")<br/>)<br/>(setq lstSer '())<br/>;; iterator the HardDisk for the SerialNumber .<br/>(repeat (vlax-get-property Drives "Count")<br/>(setq StrDrive (strcat code ":"))<br/>(if (and (setq Drive (vl-catch-all-apply 'vlax-get-property (list Drives "Item" StrDrive)))<br/>(not (vl-catch-all-error-p Drive))<br/>(vlax-property-available-p Drive "DriveType")<br/>(equal (vlax-get-property Drive "DriveType") 2)<br/>(vlax-property-available-p Drive "SerialNumber")<br/>(setq SerialNumber (vlax-get-property Drive "SerialNumber"))<br/>)<br/>(setq SerialNumber (rtos SerialNumber 2 0)<br/>lstSer (cons (list StrDrive SerialNumber) lstSer)<br/>)<br/>)<br/>(setq code (chr (1+ (ascii code))))<br/>)<br/>;; relese object .<br/>(vl-catch-all-apply 'vlax-release-object (list FSO))<br/>(vl-catch-all-apply 'vlax-release-object (list Drives))<br/>;; return the value .<br/>(princ(reverse lstSer))<br/>)<br/><br/>在CAD下加载输入PHYHAR命令<br/>得到如结果:<br/>((C: 819512431) (D: 1869301091) (E: 1908366405) (F: 1951228752))<br/>现在我再想写个函数提取其中819512431这个硬盘号,怎么写呀<br/>请高手多指点,十分感谢!急呀!我QQ:83856718</font><br/>&nbsp;</p>

mikewolf2k 发表于 2019-4-25 16:31:22

zzl9105 发表于 2019-4-25 15:58
请问下,这个读取到的硬盘序号,电脑重装,其序号不会改变吧?谢谢

这种应该读的是盘符序列号,盘符格式化就变了。不是真正的硬盘硬件序列号。

skg123 发表于 2019-4-26 19:33:55

zzl9105 发表于 2019-4-25 15:57
请问下,这个读取到的硬盘序号,电脑重装,其序号不会改变吧?谢谢

重装系统,硬盘序号会变化。

zzl9105 发表于 2019-4-25 15:57:43

skg123 发表于 2015-11-4 16:02


请问下,这个读取到的硬盘序号,电脑重装,其序号不会改变吧?谢谢

alin 发表于 2007-7-23 14:05:00

(cadr (car (C:phyhar)))

海盗曹 发表于 2013-3-14 13:33:36

来学习一下~

幸福是真 发表于 2013-5-31 10:08:40

来学习一下~

野狼谷/〈M〉 发表于 2013-6-11 23:37:13

呵呵,最好高手来一起把硬盘号,主板号,CPU编号都读取了;作为软件授权码;
另外,关于软件加密,建议看看不死猫的帖子;

jyzas 发表于 2013-7-21 23:41:08

楼主,再来个CPU的程序

skg123 发表于 2015-11-4 16:02:16

(Defun C:phyhar (/ code code Drives lstSer StrDrive SerialNumber)
(vl-load-com)
(setq code "C")
(setq FSO (vlax-create-object "Scripting.FileSystemObject")
Drives (vlax-get-property FSO "Drives")
)
(setq lstSer '())
;; iterator the HardDisk for the SerialNumber .
(repeat (vlax-get-property Drives "Count")
(setq StrDrive (strcat code ":"))
(if (and (setq Drive (vl-catch-all-apply 'vlax-get-property (list Drives "Item" StrDrive)))
(not (vl-catch-all-error-p Drive))
(vlax-property-available-p Drive "DriveType")
(equal (vlax-get-property Drive "DriveType") 2)
(vlax-property-available-p Drive "SerialNumber")
(setq SerialNumber (vlax-get-property Drive "SerialNumber"))
)
(setq SerialNumber (rtos SerialNumber 2 0)
lstSer (cons (list StrDrive SerialNumber) lstSer)
)
)
(setq code (chr (1+ (ascii code))))
)
;; relese object . reverse =>表反向排序
(vl-catch-all-apply 'vlax-release-object (list FSO))
(vl-catch-all-apply 'vlax-release-object (list Drives))
;; return the value .
(setq lstSer (reverse lstSer))
(prompt "\n 全部硬盘序号: ")
(princlstSer)
(prompt "\n C盘序号: ")
(setq code1 (cadr (car lstSer)) )
(princ code1)
(princ "\n " )
(prompt "\n C盘序号: ")
(setq code2 (atof (cadr (car lstSer))) )
(princ code2)
(princ )
)

vlisp2012 发表于 2015-11-5 08:13:05

多谢分享了!

zzl9105 发表于 2019-4-25 15:58:21

请问下,这个读取到的硬盘序号,电脑重装,其序号不会改变吧?谢谢
页: [1] 2
查看完整版本: [求助]怎样写关于读取硬盘号的LISP函数