明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5717|回复: 16

[原创]注册程序

  [复制链接]
发表于 2010-8-28 10:30:00 | 显示全部楼层 |阅读模式
高手给改一下,老是出现("00:0C:29:29:8E:72") ; 错误: 参数类型错误: stringp nil
  1. ;;;初学liSP编程,编了一个lisp程序注册功能的模块,里边好多的语句都是明经网友的,深表感谢
  2. ;;;现将源程序拿出来共享。程序编的可能罗唆一些,望老鸟不要见笑,恳请指点。
  3. ;;;
  4. ;;;在C:\langjs目录下存储一个key.txt文件
  5. ;;;将对话框文件zhuc.dcl拷贝到AutoCAD搜索支持的目录
  6. ;;;在你想要保护的lisp程序插入一句:
  7. ;;;(jiany)
  8. ;;;加载并运行程序。
  9. ;;;
  10. ;;;当想要保护的程序执行到(jiany)时
  11. ;;;程序打开C:\langjs\key.txt并取得里边存储的授权码,
  12. ;;;检验其和硬盘序列号之间的算法关系是否成立,(我的程序中只是简单的判断相等,可以改复杂一些)
  13. ;;;如果正确,则继续执行lisp程序
  14. ;;;如不成立
  15. ;;;则弹出注册对话框,输入正确的授权码,才能继续执行lisp程序,如授权码不正确,则退出。
  16. ;;;同时将正确的授权码存储在C:\langjs\key.txt中,以便下次进行检验
  17. ;;;
  18. ;;;如果想要改变key.txt存储路径和算法请自己在程序中修改。
  19. ;;;
  20. ;;;
  21. ;;;检验授权码程序
  22. (defun c:jiany()
  23.    (setq f (open "C:\\key.txt"  "r"))
  24.    (setq fee2 (read-line f));;读取key为fee2
  25.    (close f)
  26.    (getmcid);;;获取物理序列号
  27. (if (/= fee1 fee2)   ;;;这里是检验算法
  28. (zhuc)
  29. (prin1)
  30. )
  31. )
  32. ;;;对话框驱动程序
  33. (defun zhuc()
  34.   (setq dcl_id (load_dialog "custom.dcl"))
  35.    (new_dialog "zhuc" dcl_id)
  36.    (getmcid)
  37.    (set_tile "c01"  fee1)
  38.    (action_tile "c03" "(gsouqm) (done_dialog 1)")
  39.    (setq bb (start_dialog))
  40.    (cond ((= bb 1)(wsouqm ))
  41.          (t (exit))
  42.    )
  43. (prin1)
  44. )
  45. (defun gsouqm();;;获取授权密码
  46.    (setq ppp  (get_tile "c02"))
  47.    (prin1)
  48. )
  49. (defun wsouqm ();;;写入授权密码
  50.    (setq f (open "C:\\key.txt" "w"))   
  51.    (write-line ppp f)
  52.    (close f)
  53. ;;;   (jiany)
  54.    (prin1)
  55. )
  56. ;;;获得硬盘虚拟序列号程序
  57. ;;获取网卡号cpu序列号
  58. ;;Test OK with XP
  59. ;;Use WMI to Get Networkadapter MAC.
  60. ;;Author : eachy [eachy@xdcad.net]
  61. ;;Web : http://www.xdcad.net
  62. ;;2005.11.22
  63. (defun getmcid (/ mac WMIobj serv lox sn)
  64.   (vl-load-com)
  65. ;;;以下读取mac地址
  66.   (setq mac '())
  67.   (if (SETQ WMIobj (VLAX-CREATE-OBJECT "wbemScripting.SwbemLocator"))
  68.     (progn (SETQ serv (VLAX-INVOKE WMIobj 'ConnectServer "." "\\root\\cimv2" "" "" "" "" 128 nil))
  69.            (setq lox (vlax-invoke serv 'ExecQuery "Select * From Win32_NetworkAdapter "))
  70.            (vlax-for item lox
  71.              (if (and (= (vlax-get item 'NetConnectionID) "本地连接") ;中文系统
  72.                       (not (member (setq sn (vlax-get item 'MACAddress)) mac))
  73.                  )
  74.                (setq mac (cons sn mac))
  75.              )
  76.            )
  77.     )
  78.   )
  79. ;;;  (setq macid mac)
  80.   (print mac)
  81. ;;;  (setq fee1 mac )
  82. (princ)
  83. )
  84. ;;;-----------------------------------
  85. ;;;取出串中字母数字 明经 ZZXXQQ 2008.9.15
  86. ;;;-----------------------------------
  87. (defun qzmsz (txt)
  88. ;;;   (setq txt "1a2b3))::"
  89. ;;;         i 1
  90. ;;;         j 1
  91. ;;;  ntxt "")
  92.    (repeat (strlen txt);;;对txt进行其长度次数的循环计算
  93.     (setq tx (substr txt j 1)) ;;;取出第j个字符
  94.     (if (or (<= "a" (strcase tx T) "z") (<= "0" tx "9")) ;;;将其转换为大写字母判断是否为A-Z之间或者0-9
  95.      (setq ntxt (strcat ntxt tx)) ;;;不是的话将其追加到ntxt
  96.     )
  97.     (setq j (1+ j))
  98.    )
  99.    (print ntxt)
  100. (princ)
  101. )



  1. //
  2. //注册对话框
  3. //
  4. zhuc:dialog{
  5. label="注册信息";
  6. spacer_1;
  7. :text {label="                软件注册";}
  8. :edit_box{label="机器码";key="c01";edit_width=30;}
  9. :edit_box{label="授权码";key="c02";edit_width=30;}
  10. spacer_1;
  11. :row{
  12. :text {label="       ";}
  13. :button {label="注册";key="c03";
  14. width=12;
  15. fixed_width=true;
  16. }
  17. cancel_button;
  18. :text {label="  ";}
  19. }
  20. }
发表于 2010-12-7 18:27:43 | 显示全部楼层
正想學這方面的,謝謝你的分享!
发表于 2010-12-7 19:25:58 | 显示全部楼层
("00:0C:29:29:8E:72") 是表,程序要的是string,类型不符!可将表("00:0C:29:29:8E:72")字串取出使用!(car ("00:0C:29:29:8E:72"))
发表于 2010-12-7 22:03:05 | 显示全部楼层
85.;;;-----------------------------------
86.;;;取出串中字母数字 明经 ZZXXQQ 2008.9.15
87.;;;-----------------------------------
这一段代码是精典。。。。。
发表于 2010-12-8 09:26:46 | 显示全部楼层
请高手完成上面代码,在此感谢,
发表于 2011-1-1 12:00:37 | 显示全部楼层
本帖最后由 zxjing 于 2011-1-1 12:01 编辑
another2121 发表于 2010-12-7 22:03
85.;;;-----------------------------------
86.;;;取出串中字母数字 明经 ZZXXQQ 2008.9.15
87.;;;----- ...


非常经典,我的好些程序中也都保留了跟这个类似的一句哈哈,感谢热心的Z版!
顺便祝大家新年快乐!
发表于 2011-4-28 19:10:19 | 显示全部楼层
谢谢楼主,学习了
发表于 2011-4-29 01:00:23 | 显示全部楼层
谢谢楼主,学习了
发表于 2011-6-16 15:08:37 | 显示全部楼层
修改程序是最麻烦最吃力的事情,调试需要很多时间的
发表于 2011-12-31 15:49:12 | 显示全部楼层
楼主写的不错了 继续学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-20 06:25 , Processed in 0.198170 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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