请问能否设置系统时间?(100分)

  • 主题发起人 主题发起人 yytxt
  • 开始时间 开始时间
Y

yytxt

Unregistered / Unconfirmed
GUEST, unregistred user!
; ;我是一名Delphi的初学者,现在要做的程序中要实现这样一个功能:取得另外一台
机器的时间,然后将本机的系统时间置为这个时间.我查找了一下帮助,只找着了这样一
个过程:
; ; procedure ReplaceTime(var DateTime: TDateTime; const NewTime: TDateTime);
; ; 但不能实现我要的功能.所以求教各位高手,有没有什么办法可以实现系统时间的
设置?
 
var
; SystemTime: TSystemTime;

DateTimeToSystemTime(StrToDatetime('2001-12-03 11:12:12' ),SystemTime);
SetSystemTime(SystemTime);
 
WinExec('net time //king /set /yes');
把其中的King换成你的“另外一台机器”的名字就可以了。
 
1.在另外一台机器上启动TCP/IP中的时间服务(Port13)好像是Windows Timer
2.用TNMDateTime得到时间
3.调用API SetLocalTime设置本地时间
(SetSystemTime设置的时间为UTC时间,直接这样做,你就跑到England去了。)
 
To kingron:
; ;我在程序中加入这个语句,它不能编译通过,是不是要在uses加入什么呀?
 
哈哈!还来得及!
应该为:

WinExec(PChar('net time //king /set /yes'),SW_HIDE);
 
To ntchenms:
; ; ;我实在是学得太少了,你能不能更详细的说一说.
比如: (1)怎样启动TCP/IP的时间服务?
; ; ; (2)我只找着了NMTime和NMDayTime控件,没有找着NMDateTime控件.
; ; ; (3)调用API有什么要注意的吗?是不是就是直接在程序中写入SetLocalTime?
; ; ; ; ;还是要添加一些其他的内容?
; ; ;在此,先谢谢啦!
 
To wql:
; ; 你能不能个我解释一下这个函数的具体作用或者是用法?
; ; 我试了一下,好像没有什么作用.另外,还要说明一下,另一台机器的
时间是UTC,本机是北京时.
; ; WinExec是设置成什么的格式?
 
还是用上面几位大侠提到的WinExec(PChar('net time //king /set /yes'),SW_HIDE);最简单,方便。

net time //king /set /yes ;这个参数是 dos命令
SW_HIDE ; ; ; ; ; ; ; ; ; ;这个参数 ; 执行dos命令时,隐藏控制台窗口

每个时区相隔的时间差都是固定的,所以“UTC”转“北京时”应该很简单吧,嘿嘿
 
To 小人物:
; ; 我可以将king换成机器的IP地址吗?
 
可以!!!!看看下面的运行结果!
我用的那个WinExec出错,是因为少了一个参数!你看一下帮助就可以了,第二个参数可以是
SW_SHOW,SW_HIDE,........
C:/>net time //192.168.1.3 /set
//192.168.1.3 的当前时间是 2001/1/7 下午 02:02

当前本地时间 2001/1/7 下午 02:02
是否将本地计算机的时间
与 //192.168.1.3 调整为一致? (Y/N) [Y]: y
命令成功完成。
 
我怎么在DOS下敲入net time//IP地址/set,机器提示说不认识,要我看帮助呢?
 
啊,我弄通了,我的命令格式不对.谢谢各位啦.
但又出现了新问题:
DOS下的出错提示: The computer name specified in the network path cannot be
located.Make sure you are specifying the computer name correctly,or try
again late when the remote computer is available.
我试了好几遍都是这样,是不是我不能连那台机器呢? ;
 
多人接受答案了。
 
后退
顶部