更新:添加时差功能,详见作者主页
SetupTime 是 hiswing 写的非常简单,但很有创意的系统时间自动更新软件。
系统时间错乱首先想到的是 CMOS 电池问题,或者你说,换块电池不就可以了?OK,你不需要 SetupTime
SetupTime 适合稍微有点懒,不愿意拆机器,不愿下楼买电池。比如 sein 家的清华同方 就属于此列。
软件基本原理是
在 FTP 服务器上放了一个 PHP 文件,该文件仅仅用来取服务器的系统时间,再用利用VB程序读取该文件并将得到的时间设置为本机的时间。
需要源代码的去作者主页,里面提到的 PHP 文件已经被放置到了小众的 FTP 里面,如果你没有自己的 FTP ,那么就让自己的电脑和 CPH 主机同步吧,顺便我咨询了 Paveo,这个文件对服务器不会造成任何影响,仅仅是一个读取时间的函数而已。
当然了,为了小小的防御一下抄袭问题,我没有内置这个文件地址,下载 SetupTime 后先运行 setup.exe 输入
http://www.appinn.com/servertime.php
勾选随系统启动,放那就好了。
你也可以自己上传 php 文件,一个效果。
下载(9KB): easy-share | 来自 Appinn | mediafire | 纳米盘
P.S. 新年第一篇,有空总结一下,大家都快乐 🙂
我是被骗来的……
我机器的时间是和国家授时中心核对的…哈哈…
小众元旦快乐啊!新方法,试试先.
系統內不是已經內置時間同步的功能嗎? 用Windows的可以連到Microsoft更新時間, 用Mac的都可以連到Apple更新時間
我也很想知道 这个跟系统的时间同步有什么区别
你说的是NTP服务吧,写程序的时候完全忘记这么回事了,事后还是有人提醒我才想起来。呵呵~~
应该说是一回事吧。
系统内置的那个功能,我从来没见成功过
同Sein,系统的从来没成功过……
那个功能只能同步“时间”,真的是时间,而且是必须在系统日期正确的前提下。
orz
成功率很高,不过比起Mac的逊色多了。可以换掉NTP Server。
不用php和vb,任意Web服务器都可以用来协对时间
而且也不用vb来改时间,用vbs或则js就OK了
//get HTTP Date: response from server, return approximate dateVal object
function getServerDate(serverHttpAddress, httpProxyAddress)
{
var xmlHttp = new ActiveXObject(“msxml2.xmlhttp”);
if(httpProxyAddress)
{
setProxy(2,proxyHttpAddress.replace(“http://”,””));
}
xmlHttp.open(“GET”, serverHttpAddress, 0);
ts=(new Date()).getTime();
WScript.Echo(“Start time: ” + ts);
xmlHttp.send();
tr=new Date();
WScript.Echo(“End time: ” + tr.getTime());
WScript.Echo(“Server Time: ” + Date.parse( xmlHttp.getResponseHeader(‘Date’)));
//Thu, 1 Jan 2009 09:47:01 GMT
tr.setTime(Date.parse( xmlHttp.getResponseHeader(‘Date’)) + ((new Date()).getTime() – ts)/2);
//1230805540107
WScript.Echo(“debug time: ” + tr)
return tr;
//}
//catch(e)
//{
// return 0
//}
}
//set system time to dateString
//http://www.microsoft.com/technet/scriptcenter/topics/networking/08_atnc_advanced.mspx
//http://www.microsoft.com/technet/scriptcenter/guide/sas_wmi_fvwp.mspx?mfr=true
//20030327073509.519000+480
function setSystemDate(dateString)
{
var oSvc = GetObject(“winmgmts:\\\\.\\root\\cimv2”);
oSvc.Security_.Privileges.AddAsString(“SeSystemTimePrivilege”, 1);
var e = new Enumerator(oSvc.execQuery(“select * from win32_OperatingSystem”, “WQL”, 32));
for (;!e.atEnd();e.moveNext())e.item().SetDateTime(dateString);
}
//generating the right WMI DATETIME fields
with(getServerDate(“http://www.google.com/”)) //和哪一个HTTP服务器进行同步
{
setSystemDate(“” +
getUTCFullYear() +
(getUTCMonth()<9?”0″+(getUTCMonth()+1):(getUTCMonth()+1)) +
(getUTCDate()<9?”0″+getUTCDate():getUTCDate()) +
(getUTCHours()<9?”0″+getUTCHours():getUTCHours()) +
(getUTCMinutes()<9?”0″+getUTCMinutes():getUTCMinutes()) +
(getUTCSeconds()<9?”0″+getUTCSeconds():getUTCSeconds()) +
“.******+***”);
}
再贴一个批处理版的,默认和time.windows.com同步,可以自行修改。
@echo off
echo regedit4>time.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time]>>time.reg
echo “Start”=dword:00000003>>time.reg
regedit/s time.reg
del time.reg
net stop w32time 2>nul
net time /SETSNTP:time.windows.com
net start w32time
换电池才对。。
借用一下地方测试头像……
无限迷惘中……
帮你迷惘一下。。。
Oh Yeah!!新的头像终于显示出来了~
Win2k没有自动更新时间的,xp才有
我推荐一下iTimeSync,又绿色又更准确好用的多。
APPLE的拖到启动菜单就行了
http://www.91files.com/?GBHDW9JXF7WUTC96CB5R
9KB….
好东西…
不过还是希望自己不要碰见这个情况
时区不对怎么办?
老大,现在每次更新,日期是对的,但时间每次都和正确时间错上8个小时啊????
http://www.mxjava.com/blog/archives/90.html
看这里
[…] 本程序目前已经更新,请查看详细。 cT=”0″;nc=”#444444″;nBgc=”#FFF7DE”;nBorder=”#F5E5A9″; tc=”#649B00″;tBgc=”#FFF4D0″;tBorder=”#F5E5A9″; tDigg=”%E6%8E%A8%E8%8D%90″;tDugg=”%E5%B7%B2%E8%8D%90″; defaultItemUrl=”http://www.mxjava.com/blog/archives/23.html”;defaultFeedUrl =”http://feed.mxjava.com”; […]
[…] 本程序目前已经更新,请查看详细。 分享这个帖子: 标签: .NET, 作品 […]