明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: wb0815

能否用lisp或者vlisp获取cmos的系统时间

  [复制链接]
 楼主| 发表于 2004-1-13 17:28:00 | 显示全部楼层
(setq filetime (vl-file-systime      "c:/program files/acad2000/sample/visuallisp/yinyang.lsp"))(setq filleng (length filetime))
(setq n 0 )
(while (< n  filleng )
(setq nt0 (itoa (nth 0 filetime)))
(setq nt1 (itoa (nth n filetime)))
(setq nt1 (strcat  (strcat nt0 nt1)))


可是我循环不出去了我想得到的结果是
"199904042912035200"
发表于 2004-1-13 18:11:00 | 显示全部楼层
最基本的循环问题,你的n值没有变化,(< n filleng)永远成立
 楼主| 发表于 2004-1-13 18:12:00 | 显示全部楼层
是的所以我不知道该怎么循环出去了
晕晕的
我知道循环的解过肯定不对
可是我实在是不知道该怎么循环了
发表于 2004-1-13 18:38:00 | 显示全部楼层
你对while循环不懂吗?
while后面的条件是真,就继续循环,如果是假,则退出循环,这和是编程最最基本的东西啊。。。

(while (< i 100)
  (princ i)
  (setq i (1+ i))
)
发表于 2004-1-13 19:30:00 | 显示全部楼层
楼主,我也需要这方面的知识.我用的是vb,我的做法是:获得每次windows启动都会读写的文件的修改日期,而不是当前的系统时间.因为一般对付限制使用日期的软件都是在执行改软件前修改系统日期到有效期内,执行完毕后再改回正确日期.也就是说启动时的日期是真正的日期.当然,如果用户一直把日期放在有效期内还是能跳过日期检查,不过我认为这样的人非常少.
cmos里没听说过还有一个日期,据我所知,cmos内有一个当前日期,windows的日期时间就是读取它得到的;还有一个报警时间,它是固定不变的(除非人为修改).所以我认为,无法阻止用户用修改日期的方法来使用软件,只能设法获得真实日期.
请指教,望交流.
 楼主| 发表于 2004-1-14 08:33:00 | 显示全部楼层
to meflying斑竹

我知道下面的(setq n (+ 1 n ))我没有写就是请斑竹帮我办这个循环做出去


to 15楼
楼上的你不会把当前的日期写出去呀当每天第一次运行的时候就往出写,然后比较日期我这个做过,当别人改日期的时候就给程序锁上了
发表于 2004-1-14 09:01:00 | 显示全部楼层
(defun c:test( / filetime)
  (setq filetime (vl-file-systime "e:/e.exe"))
  (apply 'strcat (mapcar 'rtos filetime))
)
 楼主| 发表于 2004-1-14 09:42:00 | 显示全部楼层
谢谢斑竹
这个函数我怎么忘了
谢了
发表于 2004-1-14 19:24:00 | 显示全部楼层
搂主,你是什么意思,"把当前的日期写出去"?用户在使用你的软件之前已经把日期改到有效期内,你的软件始终是在有效期内运行的,写出去有什么用?
 楼主| 发表于 2004-1-14 20:02:00 | 显示全部楼层
用当前日期做比较然后确定是否改过日期了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-9 02:25 , Processed in 0.209909 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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