没事弄个注册程序和注册机提提兴趣
各位大佬求教一下,比如这个代码怎么加需要注册的流程,测试了几次都是乱码跪谢,(princ "\n程序:统计线段长度 命令:zz")
(defun C:zz (/ CURVE TLEN SS N SUMLEN)
(vl-load-com)(setq SUMLEN 0)
(setq SS (ssget '((0 . "CIRCLE,ELLIPSE,LINE,*POLYLINE,SPLINE,ARC"))))
(setq N 0)
(repeat (sslength SS)
(setq CURVE (vlax-ename->vla-object (ssname SS N)))
(setq TLEN (vlax-curve-getdistatparam CURVE (vlax-curve-getendparam CURVE)))
(setq SUMLEN (+ SUMLEN TLEN))
(setq N (1+ N))
)
(princ (strcat "\n共选择 " (itoa (sslength SS)) " 条线段. 线段总长: " (rtos SUMLEN 2 3) ".")) (princ)
)
大佬们知道这个注册成功后怎么删除吗?两次成功已经没办法测试了。。。注册表搜索不到 正是要找的,学习一下,谢谢!
楼主放源码上来学习下啊。 sicky111 发表于 2014-6-7 10:14 static/image/common/back.gif
楼主放源码上来学习下啊。
论坛这类主题很多的,都是源码
;;-----------------------------------------------------------------------------------
;;2012-7-26 soly2006 调试成功!简单加密,目的是要用也要问别人,不问也要花些时间来破
;;理解所有为代码付出的优秀人才!
;;如果看到有你代码的影子,请不要见怪。
;;正式版应增加:
;;1、补齐已注册码与申请码一致;
;;2、求余要每机不同;
;;3、没必要用DCL,又不是经常用到,何必考虑人机界面;
;;4、用法:在命令后面加上(rere)就是。
;;5、再奉劝你,多用中文
;;-----------------------------------------------------------------------------------
;;;(defun rere( / 已注册码 注册码 输入注册码)
(defun c:tt( / 已注册码 注册码 输入注册码)
(setq 已注册码 (vl-registry-read "HKEY_CURRENT_USER\\Software\\solycad" "SN"))
(setq cpusn (cpu))
(setq 注册码 (strcat (加密字串 (substr cpusn 2 4) ) (加密字串 (substr cpusn 7 4) )))
(princ (strcat " 你要给别人的注册码为:" 注册码 "\n")) ;显示已注册码 便于调试,给程序不要有这条啊,
(if (/= 已注册码 注册码)
(progn
(setq 已注册码 注册码)
(princ (strcat " 申请码为: " "\n\n" cpusn))
(setq 输入注册码 (getstring "\n请输入已注册码:"))
(if (/= 已注册码 输入注册码)
(progn
(alert "请输入正确的已注册码")
(exit)
)
(progn
(vl-registry-write "HKEY_CURRENT_USER\\Software\\solycad" "SN" 输入注册码)
(princ "注册成功!")
)
)
)
(alert " \n 已注册")
)
(princ)
)
;;------------------------CPU--------------------------------
;;不明出处
(defun CPU (/ Vlist VObj lcom lExecQuery item)
(vl-load-com)
(setq Vlist '())
(if (setq VObj (vlax-create-object "wbemscripting.swbemlocator"))
(progn
(SETQ lcom (VLAX-INVOKE
VObj 'ConnectServer "."
"\\root\\cimv2""" ""
"" ""128 nil
) ;_ 结束VLAX-INVOKE
) ;_ 结束SETQ
(setq lExecQuery
(vlax-invoke
lcom
'ExecQuery
;;"Select * From Win32_BIOS"
"Select * from Win32_Processor"
) ;_ 结束vlax-invoke
) ;_ 结束setq
(vlax-for item lExecQuery
(setq Vlist (vlax-get item 'ProcessorId) ;_ 结束cons
) ;_ 结束setq
) ;_ 结束vlax-for
(vlax-release-object lExecQuery)
(vlax-release-object lcom)
(vlax-release-object Vobj)
)
)
Vlist
)
;; --------------------字串分解----------------------------------
(defun 字串分解 (字串 / i k s lst)
(setq i 0 k (chr 160))
(while (/= "" (setq s (substr 字串 (setq i (1+ i)) 1)))
(if (< s k)
(setq lst (cons s lst))
(setq lst (cons (substr 字串 i 2) lst)
i (1+ i))
)
)(reverse lst)
)
;;-------------------------加密字串---------------------------------------------
(defun 加密字串(字串 / 字串表 串)
(setq 串 字串)
(setq 字串表 (字串分解 串))
(setq 串 (apply 'strcat (mapcar '(lambda (X)(加密字符 X)) 字串表)))
)
;;-----------------------------加密字符------------------------------------------------
;;精华所在:密=字符+字符对5求余
(defun 加密字符(字符 )
(chr (+ (ascii 字符) (rem (ascii 字符) 5)))
) lucas_3333 发表于 2014-6-7 11:00 static/image/common/back.gif
论坛这类主题很多的,都是源码
这个具体怎么用呢??能教一下吗? ysq101 发表于 2014-6-7 12:12 static/image/common/back.gif
这个具体怎么用呢??能教一下吗?
论坛还有很多,这个只是其中一个
在你程序前加rere即可 学习看看是怎么个用法 本帖最后由 lucas_3333 于 2014-6-7 14:35 编辑
阿俊子 发表于 2014-6-7 14:07 static/image/common/back.gif
学习看看是怎么个用法
http://bbs.mjtd.com/thread-95792-1-1.html
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=99025
sicky111 发表于 2014-6-7 10:14 static/image/common/back.gif
楼主放源码上来学习下啊。
那位仁兄说的很对,论坛上很多,不过关系到具体的自己来写的话新手会遇到蛮多问题。一个东西做到了就会很容易,没做到就不晓得从何处着手。多看看帮助文档吧 lucas_3333 发表于 2014-6-6 17:00 static/image/common/back.gif
论坛这类主题很多的,都是源码
注册码存注册表很容易找出来 无意中又看到一个,贴出来大家学习
;;;初学liSP编程,编了一个lisp程序注册功能的模块,里边好多的语句都是明经网友的,深表感谢
;;;现将源程序拿出来共享。程序编的可能罗唆一些,望老鸟不要见笑,恳请指点。
;;;
;;;在C:\langjs目录下存储一个key.txt文件
;;;将对话框文件zhuc.dcl拷贝到AUTOCAD搜索支持的目录
;;;在你想要保护的lisp程序插入一句:
;;;(jiany)
;;;加载并运行程序。
;;;
;;;当想要保护的程序执行到(jiany)时
;;;程序打开C:\langjs\key.txt并取得里边存储的授权码,
;;;检验其和硬盘序列号之间的算法关系是否成立,(我的程序中只是简单的判断相等,可以改复杂一些)
;;;如果正确,则继续执行lisp程序
;;;如不成立
;;;则弹出注册对话框,输入正确的授权码,才能继续执行lisp程序,如授权码不正确,则退出。
;;;同时将正确的授权码存储在C:\langjs\key.txt中,以便下次进行检验
;;;
;;;如果想要改变key.txt存储路径和算法请自己在程序中修改。
;;;
;;;
;;;检验授权码程序
(defun c:jiany()
(setq f (open "C:\\key.txt""r"))
(setq fee2 (read-line f));;读取key为fee2
(close f)
(getmcid);;;获取物理序列号
(if (/= fee1 fee2) ;;;这里是检验算法
(zhuc)
(prin1)
)
)
;;;对话框驱动程序
(defun zhuc()
(setq dcl_id (load_dialog "custom.dcl"))
(new_dialog "zhuc" dcl_id)
(getmcid)
(set_tile "c01"fee1)
(action_tile "c03" "(gsouqm) (done_dialog 1)")
(setq bb (start_dialog))
(cond ((= bb 1)(wsouqm ))
(t (exit))
)
(prin1)
)
(defun gsouqm();;;获取授权密码
(setq ppp(get_tile "c02"))
(prin1)
)
(defun wsouqm ();;;写入授权密码
(setq f (open "C:\\key.txt" "w"))
(write-line ppp f)
(close f)
;;; (jiany)
(prin1)
)
;;;获得硬盘虚拟序列号程序
;;获取网卡号cpu序列号
;;Test OK with XP
;;Use WMI to Get Networkadapter MAC.
;;Author : eachy [eachy@xdcad.net]
;;Web : http://www.xdcad.net
;;2005.11.22
(defun getmcid (/ mac WMIobj serv lox sn)
(vl-load-com)
;;;以下读取mac地址
(setq mac '())
(if (SETQ WMIobj (VLAX-CREATE-OBJECT "wbemScripting.SwbemLocator"))
(progn (SETQ serv (VLAX-INVOKE WMIobj 'ConnectServer "." "\\root\\cimv2" "" "" "" "" 128 nil))
(setq lox (vlax-invoke serv 'ExecQuery "Select * From Win32_NetworkAdapter "))
(vlax-for item lox
(if (and (= (vlax-get item 'NetConnectionID) "本地连接") ;中文系统
(not (member (setq sn (vlax-get item 'MACAddress)) mac))
)
(setq mac (cons sn mac))
)
)
)
)
;;;(setq macid mac)
(print mac)
;;;(setq fee1 mac )
(princ)
)
;;;-----------------------------------
;;;取出串中字母数字 明经 ZZXXQQ 2008.9.15
;;;-----------------------------------
(defun qzmsz (txt)
;;; (setq txt "1a2b3))::"
;;; i 1
;;; j 1
;;;ntxt "")
(repeat (strlen txt);;;对txt进行其长度次数的循环计算
(setq tx (substr txt j 1)) ;;;取出第j个字符
(if (or (<= "a" (strcase tx T) "z") (<= "0" tx "9")) ;;;将其转换为大写字母判断是否为A-Z之间或者0-9
(setq ntxt (strcat ntxt tx)) ;;;不是的话将其追加到ntxt
)
(setq j (1+ j))
)
(print ntxt)
(princ)
)
//
//注册对话框
//
zhuc:dialog{
label="注册信息";
spacer_1;
:text {label=" 软件注册";}
:edit_box{label="机器码";key="c01";edit_width=30;}
:edit_box{label="授权码";key="c02";edit_width=30;}
spacer_1;
:row{
:text {label=" ";}
:button {label="注册";key="c03";
width=12;
fixed_width=true;
}
cancel_button;
:text {label="";}
}
}
页:
[1]
2