Mike55 发表于 2022-7-5 22:52:50

一次或两次跑步

有没有一种方法可以让一个加密的lisp程序作为一个试用版,只运行一到两次,然后就会损坏、删除或擦除它自己?

BIGAL 发表于 2022-7-5 23:03:46

是的,是的,是的。
 
我不会沿着删除路径走,而是使用goes数或按日期,简单的方法是读写注册表,如果11不再有效,则读取一个数字。这里有一些关于使用注册表项的示例。

Mike55 发表于 2022-7-5 23:09:47

谢谢我找到了这个
 
 
(setq datst(rtos(getvar“cdate”)2 0))
(setq日期字符串
(strcat)
(substr datst 5 2)
"/"
(参考数据7.2)
"/"
(substr datst 1 4)
)
)

nod684 发表于 2022-7-5 23:18:04

 
你怎么用这个?

MSasu 发表于 2022-7-5 23:29:19

我认为Mike55考虑过使用编程检索的日期来限制使用量;代码可能是:
(if (> (getvar "cdate") 20140618)
(progn
(alert "The limit was June 18, 2014")
(exit)
)
)
但是,这将无法控制呼叫数。
 
请不要错过,日期是从系统中检索的,所以这个解决方案很容易规避。

BIGAL 发表于 2022-7-5 23:31:54

正如Msasu所说,日期很容易重置,只需重新加载程序也会重置它,因为我暗示了一个更好的方法是每次向注册表写入一个递增的数字。如果他们使用编译后的lisp-FAS重新加载set-clock等,给他们十次并不重要,除非他们知道如何检查注册表中添加的条目,这可能是99.9999%。这里有一些关于代码的帖子,如何创建注册表项并检索,需要仔细研究,在相同的主题下很肯定是保护代码。

Mike55 发表于 2022-7-5 23:42:15

Bigal你说得对,我更喜欢写注册表。
我试着使用#标记,但没有成功?
 
 
(if(not(getenv“MyDemo”))
(setenv“MyDemo”“1”)
(setenv“MyDemo”(itoa(1+(atoi)(getenv“MyDemo”аа)а)а)
(if(>(atoi(getenv“MyDemo”))10)
(程序
(提醒“您有超过演示时间”)
(退出)))

BIGAL 发表于 2022-7-5 23:48:21

只是一点拼写
 
(提醒“您已超过演示时间”)

MSasu 发表于 2022-7-6 00:00:04

您必须选择代码摘录,然后按“#”按钮。或者分别写下“”和它的结尾
" at beginning.
页: [1]
查看完整版本: 一次或两次跑步