我如何是我的程序制作到类似30天限制,不受windows时间的限制,不管windows的时间如何,到了30天就不能用了。请问,我该怎么做呢?
谢谢!!

解决方案 »

  1.   

    其实,我想做的是,控制一天的上机时间,如果到了的话,就关机或者锁住系统。
    这里是需要判断日期的。但是如果用户将windows的日期改了的话,不就相当于到了新的一天了吗。不就没法控制了吗?我该如何解决这个问题?
      

  2.   

    在时间未更改之前,用你准备在什么时候关机的时间减去当前时间,转换成秒,然后用timer控件倒记时,倒数到零就关机,又或者在时间未更改之前,将当前时间保存到一个全局变量里,以那个变量时间为准,而不以系统时间为准
      

  3.   

    你所要求的实际上就是一个如何判断用户是否改变了系统时间,和当前正确的时间是多少。对于得知正确的当前时间,我没有好的思路,基本觉得通过系统运行时间应该可以估计出一部分。但对于判断用户是否修改了当前时间,则非常简单,你只需要每次在运行时记录下当前时间,在结束的时候记录程序运行的时间,然后下次运行程序的时候将这两个时间一相加,在和系统返回的时间相比较就行了。实际上很多程序对于这种需求都是去判断用户是否更改了时间,而不是单纯的去想办法获得准确的时间,所以常常可以看见这样的情况,你明明只过期了一天,但把时间调回之后,却告诉过期了xxx天。
      

  4.   

    程序实现的原型如下:
    public tStartTime as datesub main()
     t1=getLastRunTime       '获取上次的运行时长
     t2=getLastRunStartTime  '获取上次程序的启动时间
     if abs(t2+t1-now)>30days then  '判断与当前时间的距离是否超过30天
      msgbox "expert!"
     else
      tStartTime=now  '记录当前时间
     endif
    end subsub ProgramEnd()
     saveLastRunStartTime tStartTime     '保存本次程序的启动时间
     saveLastRunTime abs(now-tStartTime) '保存本次的运行时长,abs的意思是记录绝对的距离,防止用户在退出的时候把时间往前调
    end sub