作品

再也不用设置烦人的时间了

07-12-22 | 13 Comments |

  我的台式机很早以前就出了问题,现象是通电开机后,系统时间总是被归零,而重启则没有问题,估计是BIOS电池没电或是坏了。虽然是个小问题,但每次开机后必须手动设置时间,如果不将时间设置正确,卡巴斯基会因为系统时间服务器时间不同而罢工。我又很懒,不愿意拆机器,买电池,不如写个小程序来解决该问题吧。

  我们知道,系统时间本身就是CMOS时钟,所有程序语言的取系统时间函数都是取CMOS时间的。但现在的情况是由于BIOS电池损坏,CMOS的时钟本身出现了问题。那么如何才能得正确的时间呢?唯一的办法是取其它机器的时间。

  基本思路是:在FTP服务器上放了一个PHP文件,该文件仅仅用来取服务器的系统时间,再用利用VB程序读取该文件并将得到的时间设置为本机的时间。

  PHP文件非常简单,就一句话,即取系统时间。

  VB程序也非常简单,从部件中选择Inet控件到窗体,在FormLoad事件中加入如下代码:

  1. Private Sub Form_Load() 
  2. On Error GoTo err: 
  3.     Dim bValidate() As Byte 
  4.     Dim myTime As String 
  5.     Dim url As String 
  6.  
  7.     File.setIniFileName (App.Path & "\config.ini") 
  8.     Inet1.url = File.ReadString("server", "url", File.ReadInt("server", "urllen")) 
  9.     bValidate() = Inet1.OpenURL(Inet1.url, icByteArray) 
  10.     myTime = StrConv(bValidate, vbUnicode) 
  11.  
  12.     If Len(myTime) = 19 Then 
  13.         Date = Mid(myTime, 1, 10) 
  14.         time = Mid(myTime, 12, 8) 
  15.     End If 
  16.  
  17.     End 
  18. Exit Sub 
  19.  
  20. err: 
  21.     Inet1.Cancel 
  22.     MsgBox ("设置日期时间时出错!") 
  23. End Sub 

  编译后即可。为了防止以后域名变更,也可以将url配置到ini文件里面。在启动菜单里新建编译后exe文件的快捷方式,这样每次启动系统后,就不用手动执行该程序了。

  程序很简单,对我来说也很实用。以后再也不用设置烦人的时间了。

  本程序目前已经更新,请查看详细


五冠 Nokia/诺基亚 5230 5230XM 送证书V20版 内有港行 销数千台
1000.0元
批发 雷朋3025镜面反光太阳镜 太阳眼镜 19.9/副 顶级质量
19.9元
促销笔记本电脑 13.3英寸超薄N450无线网卡视频
1999.0元

  1. 你可真会想办法呀!哈哈

  2. 没办法呀!呵呵~~

  3. 不得不拜一下了,世界上的重大发明创新大都是懒人发明的,果然不错。

  4. 买一块2032的电池换上就行了,你还真有办法。

  5. 好办法啊!如果能做成一个可执行文件就好了(加上可设置选项,比如php文件路径等)

  6. 我使用中的程序就是生成的可执行文件,并且有配置文件对php文件地址进行配置.

  7. 你的exe文件能提供下载不

  8. 当然,点击文章最下面的下载,下载安装程序。安装完成后,按照Readme.txt中的说明进行配置即可。

  9. 非常感谢,我家那台清华同方有救拉

  10. 大家都忘记了NTP服务了么?

    经你这么一说,我想起来了,记得很早以前为局里的配置服务器时用过这个服务。

  11. 唔,牛人。由一块电池引发的高级技巧。很棒啊。

  12. 太过讲了,实在是懒的买电池呀!

  13. [...] 我的台式机虽已年迈,但没啥大毛病,只是主板上的BIOS电池没电了,无法记录时间。要知道每次启动电脑都要设置时间是很烦人的,所以前段时间写了个小程序-SetupTime,用来同步系统时间。基本原理是: 在FTP服务器上放一个用来取服务器的系统时间PHP文件,再用利用VB程序读取该文件,将返回的时间设置为本机的时间。 [...]

留下您的脚印


«
»