我的台式机很早以前就出了问题,现象是通电开机后,系统时间总是被归零,而重启则没有问题,估计是BIOS电池没电或是坏了。虽然是个小问题,但每次开机后必须手动设置时间,如果不将时间设置正确,卡巴斯基会因为系统时间服务器时间不同而罢工。我又很懒,不愿意拆机器,买电池,不如写个小程序来解决该问题吧。
我们知道,系统时间本身就是CMOS时钟,所有程序语言的取系统时间函数都是取CMOS时间的。但现在的情况是由于BIOS电池损坏,CMOS的时钟本身出现了问题。那么如何才能得正确的时间呢?唯一的办法是取其它机器的时间。
基本思路是:在FTP服务器上放了一个PHP文件,该文件仅仅用来取服务器的系统时间,再用利用VB程序读取该文件并将得到的时间设置为本机的时间。
PHP文件非常简单,就一句话,即取系统时间。如下:
<?php echo date("Y-m-d H:i:s");?>
VB程序也非常简单,从部件中选择Inet控件到窗体,在FormLoad事件中加入如下代码:
Private Sub Form_Load() On Error GoTo err: Dim bValidate() As Byte Dim myTime As String Dim url As String File.setIniFileName (App.Path & "\config.ini") Inet1.url = File.ReadString("server", "url", File.ReadInt("server", "urllen")) bValidate() = Inet1.OpenURL(Inet1.url, icByteArray) myTime = StrConv(bValidate, vbUnicode) If Len(myTime) = 19 Then Date = Mid(myTime, 1, 10) time = Mid(myTime, 12, 8) End If End Exit Sub err: Inet1.Cancel MsgBox ("设置日期时间时出错!") End Sub
编译后即可。为了防止以后域名变更,也可以将url配置到ini文件里面。在启动菜单里新建编译后exe文件的快捷方式,这样每次启动系统后,就不用手动执行该程序了。
程序很简单,对我来说也很实用。以后再也不用设置烦人的时间了。
Tags: 作品


















你可真会想办法呀!哈哈
没办法呀!呵呵~~
不得不拜一下了,世界上的重大发明创新大都是懒人发明的,果然不错。
买一块2032的电池换上就行了,你还真有办法。
好办法啊!如果能做成一个可执行文件就好了(加上可设置选项,比如php文件路径等)
我使用中的程序就是生成的可执行文件,并且有配置文件对php文件地址进行配置.
你的exe文件能提供下载不
当然,点击文章最下面的下载,下载安装程序。安装完成后,按照Readme.txt中的说明进行配置即可。
非常感谢,我家那台清华同方有救拉
大家都忘记了NTP服务了么?