明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2837|回复: 5

NEW!一个简单的注册模块,轻松获得随机数!

[复制链接]
发表于 2007-6-25 19:59:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 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)
  )
)

 楼主| 发表于 2007-6-25 20:01:00 | 显示全部楼层

附上信息提示函数,以下函数来自明经通道:

(defun mc_PopupBox (strText intWaitTime strTitle intDispType)
  (vlax-invoke-method
    (vlax-create-object "wscript.shell")
    'Popup
    strText
    intWaitTime
    strTitle
    intDispType
  )
)

 楼主| 发表于 2007-6-25 20:07:00 | 显示全部楼层

附上对话框代码:

my : dialog {
    label = "--请注册梦扬软件-- ";
                    :column{
                    :column{
      :boxed_column {
      label = "数据窗口";
      :column{
      : edit_box {       
   label = "用户随机数:";
   key   = "code_cv";
   width = 5;
      }
      }
      :column{
      : edit_box {       
   label = "注册码  :";
   key   = "code_cv_ps";
   width = 5;
}
}
}
}
}
ok_cancel;
    }

发表于 2007-9-3 14:31:00 | 显示全部楼层
经测试,列表缺陷!!请问要怎么改才不会报错啊!
发表于 2007-9-6 12:50:00 | 显示全部楼层
能不可搞个完整的呀,好像有问题
发表于 2012-5-30 20:10:29 | 显示全部楼层
未见个完整的~~~~~~~~~~~~~~~~~~~~~~~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-7-21 23:45 , Processed in 0.192393 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表