明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5264|回复: 22

[讨论] lisp程序限制使用的探讨

  [复制链接]
发表于 2011-7-25 08:17 | 显示全部楼层 |阅读模式
本帖最后由 gbhsu 于 2011-7-25 08:27 编辑

;;;以前刚学lisp时对自已的劳动成果相当珍惜
;;;藏藏掖掖的,不过想法可以和大家探讨一下
;;;将源码贴出来供大家参考!
;;;使用方法:
;;;(defun c:mgb()
;;;          (hsu_data "lmdata" "木工板")
;;;          .........
;;;)
;;;可以有点小问题,望高手改进!
;;;另外记录数据时可以增加算法x*5+3,返回读取则(x-3)/5等等大家任意设计
:::同时也可增加注册表的应用
;;;关于记录文件的删除的应用大家也可以讨一下
;;;这是老程序,没有时间细化!
;;;另外可以加进,U盘,硬盘,网卡的序列号等,可以限制使用人,限制使用电脑!
(defun hsu_data(file_name string / num exist-fp )
       (setq date 20121231);设置使用日期
       (setq use_num   2000);设置使用次数
       (setq num 0)
       (if hsukey (setq use_num 10000))             ;后门
       (hsu-modemacro (list string "绘制程序由燕川布衣编制,群号:113631483."))
       (setq  file_name (strcat"c:\\windows\\"file_name".dat"))  ;位置可另藏
       (if (findfile file_name)
    (progn
    (setq exist-fp (open file_name "r"))
    (if (setq num(read-line exist-fp))
        (setq num (read num)))
   
    (if (not num)(setq num 0))
    (close exist-fp)
    (setq exist-fp (open file_name "w"))
    (if num
      (progn
      (setq num (+ num 1))
      (write-line (itoa num) exist-fp)
      (close exist-fp)
      (princ (strcat"\n您已使用了"(itoa num)"次"string"程序!\n"))))
    );progn
  (progn
    (if (<= (read(rtos (getvar "cdate") 2 0)) date)
        (progn
        (setq exist-fp (open file_name "w"))  
        (write-line (itoa num) exist-fp))
        );if
    (close exist-fp)
    );progn
    );end of if
       (if (or(>= (read(rtos (getvar "cdate") 2 0)) date)
        (>= num use_num))
    (progn
      (alert (strcat"\n您的"string"超过使用日期["(itoa date)"],\n\n或使用次数["(itoa use_num)"次],\n\n请及
时重新下载!\n\nQQ群号:113631483"))
      (if(findfile file_name)
         (setq exist-fp (open file_name "w"))
         (close exist-fp)
        
         ;(vl-file-delete file_name)
         );if
      (exit)
      
      );progn
              );end of if
         );defun

(defun hsu-modemacro(string_list / )
  (setq modemacro-string "")
  (foreach n string_list
           (setq modemacro-string (strcat modemacro-string " " n)))
  (setvar "modemacro" modemacro-string)
);defun
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2011-7-25 11:33 | 显示全部楼层
呵呵,
自已顶一下!
发表于 2011-7-25 14:26 | 显示全部楼层
谢谢分享 学习啦
发表于 2011-7-25 20:01 | 显示全部楼层
回复 gbhsu 的帖子

哈哈,感谢分享!
 楼主| 发表于 2011-7-25 20:36 | 显示全部楼层
回复 xiaxiang 的帖子

适合自已的才是最好的!
发表于 2011-7-27 00:09 | 显示全部楼层
这个是浮云
发表于 2011-7-27 08:55 | 显示全部楼层
学习一下!感谢gbhsu大师的分享!
发表于 2011-8-5 14:46 | 显示全部楼层
用了一下
我设定的是6次
第六次的时候是出现对话框
但是七次输入命令时候 就显示第一次使用过了
这是怎么回事?
发表于 2011-8-5 17:26 | 显示全部楼层
謝謝,學習了.........
发表于 2011-8-7 14:57 | 显示全部楼层
好好阅读学习下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-26 05:05 , Processed in 0.994504 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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