yaokui25 发表于 2013-5-15 13:09:08

有看不懂的地方,请老大帮忙翻译一下

本帖最后由 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)
)
)

lht 发表于 2013-5-15 17:09:40

(> my_da 90)改为(> my_da 180)

yaokui25 发表于 2013-5-15 17:25:17

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) ) )

wowan1314 发表于 2013-5-15 22:55:25

就是算已安装多少天的,
看变量名字猜测
新月乘30加日。   减去
旧月乘30加日。
得到已经安装多少时间,。

yaokui25 发表于 2013-5-16 07:35:40

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:21

发帖文不对题,警告一次!

yaokui25 发表于 2013-5-16 11:13:01

Gu_xl 发表于 2013-5-16 10:36 static/image/common/back.gif
发帖文不对题,警告一次!

对不起版主
嘿嘿~
大家看了没人回答,所以把名字改了,我想引起大家的注意
下次一定注意!!!不会有第二次了
顺便版主能不能回答一下我的问题啊

yaokui25 发表于 2013-5-16 15:53:27

求解释啊,在线等・・・・・・

Gu_xl 发表于 2013-5-16 16:07:32

yaokui25 发表于 2013-5-16 15:53 static/image/common/back.gif
求解释啊,在线等・・・・・・

不知道你想要求什么样的解释?

yaokui25 发表于 2013-5-16 16:28:51

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
查看完整版本: 有看不懂的地方,请老大帮忙翻译一下