为何 windows98 的时间与 cmos的时间不一致。(50分)

A

askall

Unregistered / Unconfirmed
GUEST, unregistred user!
我给客户安装一套软件,别的公司开发的。安装在98下。

但是运行一段时间后,不定期的会出现时间变慢的问题。

但是这时CMOS的时间是正确的,因为只要重新启动一下机器,时间就恢复了。

有没有高人帮助解决这个问题,或者如果用程序读出CMOS中的时间。
 
declear cmos again
and config the bios datetime
restart .check it with windows system.
you test;
 
很正常,windows是自己管理时钟的,98下的程序如果动了系统资源,
就会影响了时钟的精准,连续运行时间长了自然不准,
不过NT/2000没这毛病。
 
没见过,是不是那套软件调整的win98的时钟频率呀。
 
不是这个原因, 是这样的, WIN计时是靠时钟中断计数来处理的, 大约每55毫秒计一次数
相当于每秒18.2次中断. 由于它不是整数, 所以有误差. 但是每次当系统启动时他会读
入CMOS的时间以此为基准进行计时. 如果系统连续运行很长时间中间不关机, 那误差就大了
 
会不会那个软件的客户端同步服务器的时钟?
 
现在关键是我怎么解决,而且是用程序来想法纠正,

首先,我想作一个定期关机的程序,因为机器必须24小时开着运行那个程序
设定到晚上2点左右自己重起。

第二,通过读取CMOS中的时间纠正98的时间。

我想用第二种方法,但不知道如何读CMOS时间。
 
port[$70] := address;
data := port[$71];
按照RTC的地址单元可以读出时钟,不过这是borland pascal的
delphi要用asm。
 
这种问题我是这样解决的, 我在系统中写了段代码, 让他每隔1分钟与时钟服务器同步时钟.
代码很简单, 你用D6的NTP控件就可以了,还有一个笨办法,就是在代码利用
NET TIME 来同步时钟。。。。
 
CMOS电池检查一下。

以前碰到过类似的问题。CMOS电池放电解决了。


 
to tseug:
这台机子是单机的,没有网络,而且他的CMOS时间是正确的。
 
是那套软件有问题,我以前也碰到过这种问题,我们公司有个同事用VB写了一个程序,运行
时间长了就出现这种情况,是程序循环有问题,你把那套软件卸载之后,再试试。
 
顶部