VB技术

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

07-12-22 | 10 Comments | 2,107 views

  我的台式机很早以前就出了问题,现象是通电开机后,系统时间总是被归零,而重启则没有问题,估计是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: 作品

相关日志


Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网
  1. 你可真会想办法呀!哈哈

  2. 没办法呀!呵呵~~

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

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

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

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

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

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

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

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

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

Leave a Reply


« Blog大换血
» 没有了网络,你还会写程序吗?

Copyright © 2007 MXJAVA. All rights reserved.