本帖最后由 9701519 于 2012-5-28 23:49 编辑
 - (defun UseLimit (/ FIND_SERIALNUMBER regNumber num regnum reg_path *error*)
- (defun *error* (msg / ent count)
- (princ)
- )
- (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
- )
- )
- (setq reg_path "HKEY_CURRENT_USER\\Software\\VB and VBA Program Settings\\temp")
- (setq regNumber (vl-registry-read reg_path "注册码"))
- (if (/= regNumber
- (itoa
- (/ (atoi (rtos (atoi (rtos (FIND_SERIALNUMBER "C:"))))) 3);;;注册码=申请码/2
- )
- )
- (progn
- (alert
- (strcat
- "请注册!")
- )
- (setq num (rtos (FIND_SERIALNUMBER "C:")))
- (setq regnum (itoa (/ (atoi (rtos (atoi num))) 3)));;;注册码=申请码/2
- (textscr)
- (princ
- (strcat "您的申请码为: " num)
- )
- (setq regNumber (getstring "\n请输入注册码:"))
- (if (/= regNumber regnum)
- (progn
- (alert "注册码无效!")
- (exit)
- )
- (progn
- (vl-registry-write reg_path "注册码" regnum)
- (alert "您已成功注册!")
- )
- )
- T
- )
- )
- (princ)
- )
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;(vl-load-com)
- ;;;(vl-load-all "Register")
- ;;;(UseLimit)
- ;;;请在任何LSP文件中加入以上三行即可,注意一定要放在最前面!!!
- ;;;只支持AutoCAD2000及以上的版本
- ;;;Register.fas文件必须放在AutoCAD的支持路径下
- ;;;如Register.fas文件不在AutoCAD支持路径,请自行指定路径
- ;;;如(vl-load-all "C:/Program Files/AutoCAD 2004/Support/Register")
- ;;;现在的加密方式为
- ;;;获取物理磁盘C的序列号进行除2取整运算
- ;;;所以注册码=取整(申请码/2)
- ;;;如申请码为1550011861,则注册码=1550011861/2=775005930.5,去掉小数
- ;;;注册码则为775005930,即可注册成功
CPU序列号代码如下:
 - (defun cpuid (/ str)
- (setq str
- "Set objSWbemObject = GetObject("winmgmts:Win32_Processor.DeviceID='cpu0'")
- ret = objSWbemObject.ProcessorId
- 'msgbox "首枚CPU序列号:" & ret" )
- (if (not *wsc)(setq *wsc (vlax-create-object "ScriptControl")))
- (vlax-put *wsc 'language "vbs")
- (vlax-invoke *wsc 'ExecuteStatement str)
- (vlax-invoke *wsc 'eval "ret")
- (vlax-release-object FILSYS)
- (if (vl-catch-all-error-p VAL)
- (setq VAL NIL)
- VAL
- )
- )
该贴已经同步到 9701519的微博 |