hszhxl 发表于 2003-11-25 16:03:00

[LISP]请教如何把自编的AutoLISP程序做成限次版

我想把自己编写的AutoLISP程序做成限次版,大概限用500次吧,但不知如何实现计数:
1、全局变量可以吗?可以创建新的全局变量吗?用什么函数创建?
2、用注册表可以吗?但不知道有关注册表的那几个函数语法是如何规定的,我试了很多次,都不知其所以然,望赐教!最好举一实例。不胜感激!

vladimir 发表于 2016-10-25 08:57:31

很不错的程序,谢谢楼主分享啊。

meflying 发表于 2003-11-25 16:47:00

先用读注册表,(vl-registry-read "HKEY_CURRENT_USER\\Test" "Times)
如果返回NIL,则表示第一次使用,写注册表
(vl-registry-write "HKEY_CURRENT_USER\\Test" "Times" "1")
如果返回不是NIL且小于500,则将返回的值加1后重新写入注册表,如果大于500则什么也不做,直接退出程序。。。
注意:这里的操作都是字符串,加1时要转换为整型,写注册表时又要转换回字符串型,注册表的位置你可以根据自己要求改变一下

hszhxl 发表于 2003-11-25 21:14:00

多谢,多谢,我的限次版终于搞定了!!!
不好意思,再请教一个问题:我先前已把自编LISP程序设置为2003年11月30日以前有效,但我发现过期失效后只要把系统日期改回2003年11月30日以前,程序就又有效了,这有什么好办法吗?也许我不该把精力放在这类问题上,但我真的没有办法,我先前已经有过这样的教训了,不愿再让自己半年的辛苦付诸东流。我在这里先行谢过了!(寄到我的信箱里好吧:hszhxl6666@sina.com或hszhxl8888@sina.com)

meflying 发表于 2003-11-26 08:27:00

在安装时提取系统时间,同上面的方法,可以写入注册表,以后每次都提取系统时间与注册表中时间比较,如果不是当天或后一天,则退出程序。如果是后一天,则将新的日期写入注册表,如果是当天,则可以限制每天可以运行的次数,以防止用户总将系统时间总改为某一天来运行程序,虽然这样每天得改,会很麻烦,但总是能用。
这样以后,可以判断系统时间是否超过预定时间。。。
这样做,用户只要乱改系统时间,就会导致无法运行程序。。。

f5612140 发表于 2003-11-26 12:30:00

1.請問樓主是什麼寶貝需這麼保護它
2.既然要給別人用為何要限次
3.我贊成時間限制,程序中動手腳即可
4.另外搞一個安裝程式(.exe),安裝時自動安裝程序執行需要的"隠藏必要條件"

hszhxl 发表于 2003-11-29 03:02:00

多谢版主不吝赐教,我的试用版基本上可以发布了,加密与解密的问题,终究是没有尽头的。。。
倒是想请教楼上的朋友,你的安装程式是用什么制作的,我用的制作程式怎么没"隠藏必要條件" 这个选项呢?

f5612140 发表于 2003-11-30 16:36:00

是否請樓主先回答我第一二個問題?

janice 发表于 2003-12-4 20:31:00

我可以问一下那个人为什么要设定注册日期呢?

龙龙仔 发表于 2003-12-8 12:33:00

程序加載就會自動设定注册日期

gfz_redfox 发表于 2006-8-5 23:09:00

太厉害了,我又学到一招,谢谢meflying
页: [1] 2 3 4
查看完整版本: [LISP]请教如何把自编的AutoLISP程序做成限次版