200分求方案:请问单机程序怎么取得客观无误的系统时间(用户无法修改) (10分)

  • 主题发起人 主题发起人 willxue
  • 开始时间 开始时间
W

willxue

Unregistered / Unconfirmed
GUEST, unregistred user!
单机数据库中,增加记录时必须客观无误的获得系统时间作为一个字段值,不能让用户通过修改CMOS、
系统时间人为改变(改前),请给思路,可行的话立刻另贴给分:
本人曾考虑过用一个托盘程序,系统启动时自动运行,并把当前时间记录下来写入注册表,以后每一分钟
刷新注册表,这样,用户通过改COMS等方法,就不能将系统时间改成上次关机的时刻之前的时刻(启动时
托盘会检测到),可是,这样仍旧无法防止系统时间被提前几个小时或者时几分钟,而这正是程序不允许的!
 
链接一台服务器,与服务器时间比较
 
如果是单机程序,那么这是不可能的
除非在程序启动的时候,把系统时间记录起来,每次启动的时候都要比较上一次启动的
时间,这种解决方案比较麻烦,应该可以解决。
 
我以前用过一台笔记本,在开机的情况下每隔一个小时时间自动往回跳一个小时,我的方
法是,写一个“时间守护者”程序,每秒钟检查一次系统时间,如果发现当前系统时间相对
上次的误差大于2秒,就进行纠正。但是,这也只能防止用户在Windows中改系统时间,不能
解决修改CMOS时间的问题。如果要防止修改CMOS时间,可以给CMOS加口令。
如果是纯粹的单PC应用,只能这么做了,如果可以连接时间服务器,那当然是最好的。
 
连一台服务器,读服务器的时间,
但是你要是怕别人改服务器的时间那就没有办法了:)
别想的太多了,机器是死的,人是活的,怎么搞都能破。
 
对,若可保证人员问题,此问题就不用解决了
 
看来问题不简单,这样吧,再加100分,在线等待,谢谢!
 
此种情况,除非校对时间起点,否则,不可能做到准确控制的!如果能解决时间起点的校对问题,则可以搞定的,也不用托盘程序,直接在系统驻留一计时器的系统进程,然后程序访问即可
若有联接其它机器的可能,则有两种方法:1、本地网联接一时间服务器,取服务器时间
2、通过互联网读取某时间服务器的时间指令,也可,呵呵,不知道客户钱够不够多。
 
我也碰到过这样的问题,我得解决方法是。在系统第一次安装你的软件的时候,你将正确的
系统时间写到数据库或是ini文件中。然后有人工来调整时间,且时间的调整只能向后调整
一天而却不能往回调整。其次你在每次启动的时候检测系统时间,如果系统的当前时间大于
你数据库中的时间一天那末自动更新为当前时间,如果不是的话就报错,告诉用户当前时间
因该是什麽。否则就推出不让运行。当然这不是最好的方法但是我觉得还是很有效的,大家
说说还有啥更好的方法呢?
 
加块卡,卡里带时钟
 
to ming726:
直接在系统驻留一计时器的系统进程,然后程序访问即可: 可以给个例子么?这个驻留的进程
会不会被用户中断,比如,98用热启三键或2000用任务管理器??
to 墙头草: 你的方法和我开头提出来的好像差不多,有个明显的漏洞: 如果用户2天没开机
然后他直接修改CMOS(假设他已经破了Coms口令)改签1天,这样程序也检查不出来
 
用 GPS 时钟校准系统!不但可以防止用户修改,还可实时校准时钟!
 
to seachange: GPS?贵不贵,是不是每个月要交给移动网络费?
 
单机用只需要GPS就可以了.
一般也不太贵的,不过我想是否有此必要呢?
好的也要千元左右.
便宜的几百元吧.
 
使用其他硬件解决,同意zhtx的方法,比较好。
 
呵呵,如果有,微软自己都解决喇,想当年还出过一个时间限制版的win97,除非加硬件、服务器
其他的都是白搭,迟早给人破了。
就是加硬件都不是坚不可破的。
现在写软件多少钱,还是不要想的太多了
 
读网络时钟服务器的时间!
 
只能硬件解决,否则无法。
 
谢谢大家,虽然问题没有解决
 
后退
顶部