明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: zcsoft

请高手帮忙编程:限制CAD使用次数

  [复制链接]
发表于 2005-2-24 14:29:00 | 显示全部楼层
其实程序的使用或加载次数并不难,可应用程序的试用版的限制次数的原理应用到其中去,


方法1、创建一个文件,进行读写操作,当条件成立时,则进行处理;


方法2、读写注册表,,当条件成立时,则进行处理;


这是比较简单的做法,另外的一些做法就不说了

点评

这两种方法都太简单了。  发表于 2019-8-20 18:15
发表于 2005-2-27 16:38:00 | 显示全部楼层
这种加密,算法不是重要的。


你既然有一段试用期,那我只要永远保持在试用期就行了,没必要知道你的算法.
发表于 2007-2-6 23:29:00 | 显示全部楼层
还是没谁公布码源!
发表于 2007-2-10 16:03:00 | 显示全部楼层
哪位能不能公布一下源码呀,谢谢啦
发表于 2007-2-11 12:53:00 | 显示全部楼层
写注册表只能在这两项里操作啊HKEY_CURRENT_USER,HKEY_USERS.想写进HKEY_LOCAL_MACHINE里怎么写啊!
发表于 2007-2-11 14:12:00 | 显示全部楼层

defun c:rtx ( / ELIST SCALEXY HITES HITE COORD ENDS ENDSX ENDSY DIST STARTP
               PT1 ROT ROTATE PT3 PT4 PT5)
(sETVAR "CMDECHO" 0)
;********ERROR HANDLER**********************
(defun *Error* (msg)
  (if (/= msg "Function cancelled")
    (princ (strcat "\nError: " msg))
  )
(terpri)
                        
  (setq *error* olderr)       
  (princ)
)
;***********************************************
(check)
(if cont (exit))
;********************PASSWORD************************************
(defun date ()
 (setq td (getvar "date"))
 (setq time (* 86400.0 (- td (setq j (fix td)))))
 (setq j (- j 1721119.0))
 (setq y (fix (/ (1- (* 4 j)) 146097.0)))
 (setq j (- (* j 4.0) 1.0 (* 146097.0 y)))
 (setq d (fix (/ j 4.0)))
 (setq j (fix (/ (+ (* 4.0 d) 3.0) 1461.0)))
 (setq d (- (+ (* 4.0 d) 3.0) (* 1461.0 j)))
 (setq d (fix (/ (+ d 4.0) 4.0)))
 (setq m (fix (/ (- (* 5.0 d) 3) 153.0)))
 (setq d (- (* 5.0 d) 3.0 (* 153.0 m)))
 (setq d (fix (/ (+ d 5.0) 5.0)))
 (setq y (+ (* 100.0 y) j))
 (if (< m 10.0)
  (setq m (+ m 3))
  (progn 
   (setq m (- m 9))
   (setq y (1+ y))
  )
 )

; Now print the date. Year in Y, month in M, day in D

        (setq year  (rtos (fix y) 2 0))
        (setq month (rtos (fix m) 2 0))
        (setq day   (rtos (fix d) 2 0))
 );end

;**************************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun check (/ lname logg loggo logname pass_chek)
(setq cont nil)
(find_Dcl)
(date)
(setq lname (getvar "loginname"))
(if (not lname)(setq lname ""))
(setq logg (open (strcat path "\\liscense.lib") "r"))
(if (= logg nil)
(progn
(setq loggo (open (strcat path "\\liscense.lib") "w"))
(write-line lname loggo)
(write-line year  loggo)
(write-line month loggo)
(write-line day loggo)
(close loggo)
(setq logg (open (strcat path "\\liscense.lib") "r"))
));end if/progn
(setq logname (read-line logg))
(setq ryear (read-line logg))
(setq ryear (atoi ryear))
(setq rmonth (read-line logg))
(setq rmonth (atoi rmonth))
(setq rday (read-line logg))
(setq rday (atoi rday))
(setq passm (read-line logg))
    (while passm
      (if (= (STRCASE passm) "TXROTATION")
          (progn
          (setq PASS_chek 1)
          (setq passm nil)
          )
          (progn    
          (setq passm (read-line logg))
      ));end progn/if
     );end while
(close logg)
(if (= PASS_chek 1)(setq passm "TXROTATION")(setq passm "shit"))
(if (/= (strcase passm) "TXROTATION")
(progn
(if (/= lname logname)
(progn
(alert "\nSORRY YOU ARE NOT AN APPROVED USER OF THIS RELEASE")
(alert (strcat "\nREGISTER! " lname"."))
(setq cont 0)
));end if/progn
(if (< ryear (atoi year))
(progn
(alert "\nSORRY 30 DAY TRIAL IS OVER!")
(alert (strcat "\nREGISTER!" LNAME "."))
(setq cont 0)
));end if/progn
(if (and (< rmonth (atoi month))(< rday (atoi day)))
(progn
(alert "\nSORRY 30 DAY TRIAL IS OVER!")
(alert (strcat "\nREGISTER!" LNAME "."))
(setq cont 0)
));end if/progn
(if (< (+ 2 rmonth) (atoi month))
(progn
(alert "\nSORRY 60 DAY TRIAL IS OVER!\nThat's right I gave you 60 days!")
(alert (strcat "\nREGISTER!" LNAME "."))
(setq cont 0)
));end if/progn

(if (= cont 0)
(pasw))
));end first if/progn
(princ)
);end check
;***********************************************************
(defun Pasw ()
(setq xpass (getstring "Please enter the valid password: "))
(if (/= (strcase xpass) "TXROTATION")
(setq xpass (getstring "Invalid, try again: ")))
(if (/= (strcase xpass) "TXROTATION")
(setq xpass (getstring "Invalid, last try: ")))
(if (= (strcase xpass) "TXROTATION")
(progn
(setq loggo (open (strcat path "\\liscense.lib") "a"))
(write-line "TXROTATION" loggo)
(alert "Thank you for registering!")
(close loggo)
(setq loggo (open "c:\\acad.llb" "a"))
(write-line "ROTXT.LSP" loggo)
(close loggo)
(setq cont nil)
)(alert (strcat "\Why guess " lname " just register!")));end progn/if
(princ)
);end pasw
;*************************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;********************Path setting************************************
(defun find_Dcl ()
(Setq datafile (findfile "c:\\lisp_lib.ini"))
(if (not datafile)(alert "Could not find configuration settings for the lisp_lib, attempting to load from defaults")
            (progn
     (setq FILEVAR (open datafile "r"))
(repeat 3 (read-line filevar))
(setq PATH (read-line filevar))
));end progn/it
)
;*******************
(setq elist (entget (car (entsel "\rSelect TEXT entity: "))))
(setq scalexy 1)
(setq hites (assoc 40 elist))
(setq hite (cdr hites))
(setq coord (textbox elist))
(setq ends (cdr coord))
(setq endsx (caar ends))
(setq endsy (cadr (car ends)))
(setq dist (* 0.5 (sqrt (+ (* endsx endsx) (* endsy endsy)))))
(setq startp (assoc 10 elist))
(setq pt1 (cdr startp))
(setq rot (assoc 50 elist))
(setq rotate (cdr rot))
(setq pt3 (polar pt1 rotate (+ (* 0.025 scalexy) dist)))
(setq pt4 (polar pt3 (+ rotate (/ pi 2)) (+ (* 0.025 scalexy) hite)))
(setq pt3 (polar pt4 (+ rotate (/ pi 2)) (* -1 (+ (* 2 (* 0.025 scalexy)) hite))))
(setq pt5 (polar pt3 (/ pi 2) (* 0.5 hite)))
(command "rotate" (cdar elist) "" pt5 )
)

发表于 2007-2-11 14:41:00 | 显示全部楼层
乖乖! 加个密程序得膨胀这么多
看来要加密还得有一定的程序底子
要不,可套不了哩!
发表于 2007-2-11 20:35:00 | 显示全部楼层
读写注册表,会不会简单点啊!
发表于 2007-5-22 00:03:00 | 显示全部楼层

公布完整的代码上来!

发表于 2008-4-25 10:51:00 | 显示全部楼层
20楼说的好.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-2 18:22 , Processed in 0.182866 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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