VFP实现网络校时
*客户机与校时服务器日期相同时可以校对时间,日期有差异时校时会失败
=Strtofile("@net Time /setsntp:210.72.145.44"+Chr(13)+Chr(10)+"@net stop w32time"+Chr(13)+Chr(10)+"@net start w32time"+Chr(13)+Chr(10)+"@w32tm /resync /rediscover","MyTempBat.Bat")
Declare Long WinExec In kernel32 String,Long
=WinExec("MyTempBat.Bat",0)
注:但是使用 net Time 或 W32Time 来校时有一个问题值得我们注意,当客户机与校时服务器 日期 有差异的时候,校时会失败。
如果要避免这个问题以及进一步实现网络精确对时,也可以编写网络通信程序,由专门的服务器、客户端通信程序来实现网络对时。
生成的批处理文件内容为(---线之间内容)
--------------------------------
@net Time /setsntp:210.72.145.44
@net stop w32time
@net start w32time
@w32tm /resync /rediscover
--------------------------------
注解:
@net Time /setsntp:210.72.145.44:设置SNTP服务器地址,XP默认是time.windows.com,这里用 210.72.145.44 ,这是中国国家授时中心的SNTP服务器
@net stop w32time:关闭W32Time校时服务
@net start w32time:重启W32Time服务来实现网络校时
@w32tm /resync /rediscover:Windows XP手动校准时间(如果是Windows 2000:w32tm -s),/resync:告诉计算机它应该尽快同步它的时钟,丢弃所有积累的错误。/rediscover:重新检测网络配置并重新发现网络资源,然后重新同步。