none
一个时间的问题 RRS feed

  • 问题

  • 当前程序对时间有要求 不能因为修改系统时间而使程序获得的时间不准确 有什么好的办法 谢谢 
    2010年3月9日 12:06

答案

  • 到网上找个时间服务器取得时间,缺点是需要访问网络,而且可以很轻易的被拦截并篡改数据(除非你有自己的时间服务器,并且用滚动密码加密)

    电子狗之类的硬件时钟,成本大,续航能力差(时钟得用电池)

    说句实话,当今世界上所有的电脑之中,没有一台知道现在的确切时间的,都是估摸估摸而已。


    替代的方式倒是有,不管当前时间,只管系统(程序)运行了多少时间,这个是可以控制的(即使动用ring0,时间也是只增不减,损失不会太大)。例如试用版,可以给个100小时使用时间,到时间就喀嚓(最保险的是自毁exe文件,出于人道主义,用户文件还是留着好了),其他的自由发挥了。

    霸王
    2010年3月9日 12:32
  • 有网络的话可以同步网络时间,如果没有,程序自己身做个计时器,但不是根本办法。

    山西.net俱乐部
    2010年3月9日 14:13
    版主
  • 2010年3月10日 2:03
    版主
  • 读服务器的
    http://feiyun0112.cnblogs.com/
    我当前有个项目也存在同样需求,采用的是 feiyun0112 MVP, 版主所说的方法。程序开的启动时从服务器返回一个时间,客户端采用 timer 的方式来维护这个时间。
    知识改变命运,奋斗成就人生!
    2010年3月10日 5:13
    版主
  • 我们也有个系统有此要求。
    解决办法是:服务器提供一个方法,叫GetServerTime, 用webservice来提供。
    客户端一进去就调用此方法,得到服务器的时间,保存于一个全局变量。
    然后设置一个1分钟长的计数器,每次触发时把全局里的时间加1分钟。
    需要用时间时,从全局变量里取这个时间。
    为了防止windows消息时滞,每一个小时重新同步服务器时间。


    HAL
    2010年3月11日 4:19

全部回复

  • 到网上找个时间服务器取得时间,缺点是需要访问网络,而且可以很轻易的被拦截并篡改数据(除非你有自己的时间服务器,并且用滚动密码加密)

    电子狗之类的硬件时钟,成本大,续航能力差(时钟得用电池)

    说句实话,当今世界上所有的电脑之中,没有一台知道现在的确切时间的,都是估摸估摸而已。


    替代的方式倒是有,不管当前时间,只管系统(程序)运行了多少时间,这个是可以控制的(即使动用ring0,时间也是只增不减,损失不会太大)。例如试用版,可以给个100小时使用时间,到时间就喀嚓(最保险的是自毁exe文件,出于人道主义,用户文件还是留着好了),其他的自由发挥了。

    霸王
    2010年3月9日 12:32
  • 有网络的话可以同步网络时间,如果没有,程序自己身做个计时器,但不是根本办法。

    山西.net俱乐部
    2010年3月9日 14:13
    版主
  • 2010年3月10日 2:03
    版主
  • 读服务器的
    http://feiyun0112.cnblogs.com/
    我当前有个项目也存在同样需求,采用的是 feiyun0112 MVP, 版主所说的方法。程序开的启动时从服务器返回一个时间,客户端采用 timer 的方式来维护这个时间。
    知识改变命运,奋斗成就人生!
    2010年3月10日 5:13
    版主
  • 除了时间同步服务器的解决方案外,还可以通过组策略限制用户更改计算机时间/日期。
    Mark Zhou
    2010年3月10日 9:46
  • 我们也有个系统有此要求。
    解决办法是:服务器提供一个方法,叫GetServerTime, 用webservice来提供。
    客户端一进去就调用此方法,得到服务器的时间,保存于一个全局变量。
    然后设置一个1分钟长的计数器,每次触发时把全局里的时间加1分钟。
    需要用时间时,从全局变量里取这个时间。
    为了防止windows消息时滞,每一个小时重新同步服务器时间。


    HAL
    2010年3月11日 4:19