有看不懂的地方,请老大帮忙翻译一下
本帖最后由 yaokui25 于 2013-5-16 11:50 编辑下面这段代是从终明经上找到了
作者应该是 kongel@qq.com 在这里谢谢该作者
作用是给程序加上使用期限
对代码的理解有限,希望老大帮忙解释一下
尤其是下段红色部分,如果说我想改变期限例如:180天
应该怎么改?
(defun k_right (/ kongel_code_s yo do yn dn
date_d_e date_d_1_e date_d_2_emy_da)
(defun k_code_s(/ date_d date_d_1 date_d_2 kongel_code_s )
(setq kongel_code_s
(vl-registry-read
"HKEY_CURRENT_USER\\Software\\kongel"
"my_code_date_start")
)
(if (= kongel_code_s nil)
(progn
(setq date_d (getvar "cdate"))
(setq date_d_1 (rtos date_d 2 20))
(setq date_d_2 (substr date_d_1 5 4))
(setq kongel_code_s (vl-registry-write "HKEY_CURRENT_USER\\Software\\kongel"
"my_code_date_start" date_d_2 ))
)
)
)
;********************************
(k_code_s)
(setq kongel_code_s
(vl-registry-read
"HKEY_CURRENT_USER\\Software\\kongel"
"my_code_date_start")
)
(setq yo (atof (substr kongel_code_s 2 1)))
(setq do (atof (substr kongel_code_s 3 2)))
(setq date_d_e (getvar "cdate")) ;;;获取当前日期
(setq date_d_1_e (rtos date_d_e 2 20))
(setq date_d_2_e (substr date_d_1_e 5 4))
(setq yn ( atof (substr date_d_2_e 2 1)))
(setq dn ( atof (substr date_d_2_e 3 2)))
(setq my_da (- (+ (* 30 yn) dn) (+ (* 30 yo) do) ) ) ;;;计算时间差 怎么计算的???
(if (> my_da 90)
(progn
(alert "\n已到期!请与kongel@qq.com联系!")
(exit)
)
(setq kongel_code_s kongel_code_s)
)
)
(> my_da 90)改为(> my_da 180)
lht 发表于 2013-5-15 17:09 static/image/common/back.gif
(> my_da 90)改为(> my_da 180)
谢谢您的回复
下面这句话不是很理解?得出来的结果是什么呢?
您在帮我看看?
(setq my_da (- (+ (* 30 yn) dn) (+ (* 30 yo) do) ) ) 就是算已安装多少天的,
看变量名字猜测
新月乘30加日。 减去
旧月乘30加日。
得到已经安装多少时间,。 wowan1314 发表于 2013-5-15 22:55 static/image/common/back.gif
就是算已安装多少天的,
看变量名字猜测
新月乘30加日。 减去
谢谢您的指导
我也是这么想的
可是这句话又怎么解释呢?
(if (> my_da 90)
90这个数最小也要大于30是吗?
如果使用期限到了的话
把程序卸载在安装是不是就可以了呢?
发帖文不对题,警告一次! Gu_xl 发表于 2013-5-16 10:36 static/image/common/back.gif
发帖文不对题,警告一次!
对不起版主
嘿嘿~
大家看了没人回答,所以把名字改了,我想引起大家的注意
下次一定注意!!!不会有第二次了
顺便版主能不能回答一下我的问题啊 求解释啊,在线等・・・・・・ yaokui25 发表于 2013-5-16 15:53 static/image/common/back.gif
求解释啊,在线等・・・・・・
不知道你想要求什么样的解释? Gu_xl 发表于 2013-5-16 16:07 static/image/common/back.gif
不知道你想要求什么样的解释?
(setq my_da (- (+ (* 30 yn) dn) (+ (* 30 yo) do) ) )
上面这段是计算时间差的对吧,得出来的结果是多少呢?
比如安装后经过两个月了,那上面的计算结果就是60天对吗?
下面这段是限制时间的吧,经过九十天了就提示已到期?
如果这么想的话 90 这个数是否可以任意改?比如说:1,2,3,30,45,60・・・
可是经过我的实验,不可以啊,所有我就没明白 上面的和下面的究竟是什么样的关系
(if (> my_da 90)
(progn
(alert "\n已到期!请与kongel@qq.com联系!")
(exit)
页:
[1]
2