[求助]用lisp方法怎样读取硬盘序列号
用lisp方法怎样读取硬盘序列号 用doslibdos_serialno
--------------------------------------------------------------------------------
Returns the serial number of a specified disk.
Syntax
(dos_serialno )
Parameters
drive
The drive name (for example, C:, D:). If not specified, the current drive is used.
Returns
A string identifying the serial number if successful.
nil on error.
Examples
Command: (dos_serialno)
"4216120B"
Command: (dos_serialno "d:")
"FCF9CE6C"
;;與(dos_serialno )的值不同
;; By LUCAS(龍龍仔)
;; FIND_SERIALNUMBER
;; Returns of Drive SerialNumber
;; Arguments :
;; Drive = "C:"
;; Notes: Requires ScrRun.dll.
;; USAGE: (FIND_SERIALNUMBER "C:")
(defun FIND_SERIALNUMBER (DRIVE / FILSYS VAL)
(setq FILSYS (vlax-create-object "Scripting.FileSystemObject"))
;;(vlax-dump-object FILSYS t)
(setq VAL (vlax-invoke FILSYS "GetDrive" DRIVE))
;;(vlax-dump-object VAL t)
(setq VAL (vl-catch-all-apply
'vlax-get
(list VAL "SerialNumber")
)
)
(vlax-release-object FILSYS)
(if (vl-catch-all-error-p VAL)
(setq VAL NIL)
VAL
)
) yxp 发表于 2005-7-31 22:54
每个人都希望对自己的劳动成果加密,
每个人都希望别人的劳动成果不加密。
所以最好把磁盘序列号的代码弄出 ...
精辟,希望所有的女人都不穿衣服,自己的老婆除外。 请问下:
为何我输入:(dos_serialno "d:")
cad运行后,没有返回任何字符串呢 晓东工具箱好像有这个功能,下一个试试吧。 doslib如何调用 完全安装后CAD目录下就有,用(ARXLOAD "doslib2004.arx") 加载就行了。 <A name=46900><FONT color=#000066><B>龙龙仔</B></FONT></A>,为何得到的结果不同呢??它与真正的序号有什么联系?能详细解释一下吗?
(vl-load-com)<BR>(FIND_SERIALNUMBER "C:")
-1878235006 <BR>_$
(dos_serialno "C:")
"900C6882" <BR>_$ 估计计算方法不一样吧,肯定有个是错的。 <P>nonono</P>
<P>格式不同而已,前面的是10进,后面的是16进</P> 我听说一个硬盘只有一个序列号,如上面所说,这不一个硬盘分成几个区就有几个序列号啦?各位老大!请指点迷津!谢谢! <P>每个人都希望对自己的劳动成果加密,</P>
<P>每个人都希望别人的劳动成果不加密。</P>
<P>所以最好把磁盘序列号的代码弄出来,然后大家针对这个密钥进行加密。</P>
<P>然后把一个破解此类加密的软件放出来,比如采用虚拟机技术,或更改磁盘序列号,让大家都能解密。</P>
<P> </P>
<P>唉,世上本无事,庸人自扰之。</P>