本帖最后由 作者 于 2007-6-25 20:14:46 编辑
以下代码实用性并不高,注册码算法都是采用明文表达式,除非将程序编译这样别人就不知道你的注册码算法!奉上以下代码仅让大家参考一下一个简单获得随机数的方法,本人不提倡对程序进行加密! ;;;注册模块 (defun huanying_f () (vl-load-com) (mc_PopupBox "请注册!" 0.5 "提示:" 48 ) ) (defun error_m () (vl-load-com) (mc_PopupBox "注册失败,请检查注册码!" 0.5 "警告:" 48 ) ) (defun mycopyright () (setq mengyang_code (vl-registry-read "HKEY_CURRENT_USER\\MengYang" "code") ) (if (= mengyang_code nil) (progn (setq cpr (getvar "cputicks"));;;获得随机数 (setq cpr_1 (rtos cpr)) (setq cpr_1_1 (substr cpr_1 4 8));;;获得随机数的后8位数 (setq mengyang_code (vl-registry-write "HKEY_CURRENT_USER\\MengYang" "code" cpr_1_1 ) ) ) (princ) ) (setq m_code (vl-registry-read "HKEY_CURRENT_USER\\MengYang" "code") ) (setq sn (vl-registry-read "HKEY_CURRENT_USER\\MengYang" "sn") ) (setq cpr_right (* (/ (/ (atoi m_code) 3) 4) 7)) (if (/= sn nil) (setq sn (atoi sn)) (princ) ) (if (/= sn cpr_right) (progn (huanying_f) (prompt "\n请注册") (setq my_meg (strcat "\n请记住你的随机数是:" m_code)) (prompt my_meg) (prompt my_meg) (setq cv (load_dialog "cv.dcl")) (setq what_next 2) (while (>= what_next 2) (if (null (new_dialog "my" cv)) (exit) ) (action_tile "code_cv" "(setq code_cv $value)") (action_tile "code_cv_ps" "(setq code_cv_ps $value)(setq code_cv_ps (atoi code_cv_ps))" ) (action_tile "ok" "(done_dialog 1)") (action_tile "cancel" "(done_dialog 0)") (set_tile "code_cv" m_code) (mode_tile "code_cv" 1) (setq what_next (start_dialog)) (cond ((= what_next 4) (PTT_MX) (command "osnap" "mid,int,end") ) ((= what_next 0) (prompt "\n用户取消了操作!\n用户取消了操作!") ) ) ) (unload_dialog cv) ) (princ) ) (if (= code_cv_ps cpr_right) (progn (alert "\n-->非常感谢!你已成功注册.\n\n重新打开CAD文件时将不再出现本窗口!\n\n请在注册表查阅你的相关注册信息!\n\n[HKEY_CURRENT_USER\\MengYang]" ) (setq code_cv_ps_s (rtos code_cv_ps)) (setq sn (vl-registry-write "HKEY_CURRENT_USER\\MengYang" "sn" code_cv_ps_s ) ) (setq sn_cn (vl-registry-write "HKEY_CURRENT_USER\\MengYang" "梦扬软件注册码" code_cv_ps_s ) ) (setq sn_SM (if (/= sn nil) (setq sn (atoi sn)) (princ) ) (setq sn_at (vl-registry-write "HKEY_CURRENT_USER\\MengYang" "action" "on" ) ) (setq sn_2 (vl-registry-write "HKEY_CURRENT_USER\\MengYang" "sn_2" "on" ) ) ) (princ) ) (if (= sn cpr_right) (progn (prompt "\n-->非常感谢!你已成功注册梦扬软件!") (vl-registry-delete "HKEY_CURRENT_USER\\MengYang" "sn_2") ) (error_m) ) ) |