如何取得服务器的系统时间呢? 帮忙,如何取得服务器的系统时间呢?我忘记了,大侠们快来帮我啊! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 APIGetSystemTime具体用法见MSDN 对不起,没看清题目应该是这样:NTRemote DateTime:部分关键代码: PTime_Of_Day_Info = ^TTime_Of_Day_Info; TTime_Of_Day_Info = record tod_elapsedt :Integer; tod_msecs :Integer; tod_hours :Integer; tod_mins :Integer; tod_secs :Integer; tod_hunds :Integer; tod_timezone :LongInt; tod_tinterval :Integer; tod_day :Integer; tod_month :Integer; tod_year :Integer; tod_weekday :Integer; end;function NetRemoteTOD(ServerName :PWideChar; var buffer :pointer) :Integer; stdcall; external 'netapi32.dll';function NetApiBufferFree(buffer : Pointer) :Integer; stdcall; external 'netapi32.dll';function TNTRemoteDateTime.GetTOD(ServerName: WideString): Integer;var Buffer :pointer; Rek :PTime_Of_Day_Info; ADate :TDateTime; ATime :TDateTime; FinalTime :TDateTime; THours, TMins, TSecs, TMSecs :Word; TYear, TMonth, TDay :Word;begin result:=NetRemoteTOD(PWideChar(ServerName), Buffer); if result=0 then begin Rek:=PTime_Of_Day_Info(Buffer); FServerName :=ServerName; FElapseDt :=Rek.tod_elapsedt; FMSecs :=Rek.tod_msecs; FHours :=Rek.tod_hours; FMins :=Rek.tod_mins; FSecs :=Rek.tod_secs; FHunds :=Rek.tod_hunds; FTInterval :=Rek.tod_tinterval; If Rek.tod_timezone <> -1 then begin FTimeZone:=Rek.tod_timezone div 60; end else FTimeZone:=0; FDay :=Rek.tod_day; FMonth :=Rek.tod_month; FYear :=Rek.tod_year; FWeekDay :=Rek.tod_weekday; ADate:=EncodeDate(FYear, FMonth, FDay); ATime:=EnCodeTime(FHours, FMins, FSecs, FHunds); FinalTime:=StrToDateTime(DateTimeToStr(ADate) + ' ' + TimeToStr(ATime)); FinalTime:=FinalTime - (FTimeZone / 24); decodetime(FinalTime,THours, TMins,TSecs, TSecs); FHours:=Integer(THours); decodeDate(FinalTime,TYear, TMonth,TDay); FYear:=Integer(TYear); FMonth:=Integer(TMonth); FDay:=Integer(TDay); end; NetApiBufferFree(Buffer);end; 关于cxGrid不能编辑的问题 200分,Socketconnection封装为DLL的问题 开店求名,有分啊。 用了参数传递为什么出错?? 如何在一个DBGrideh中显示几个查询的内容,谢谢! 如何使用FastReport打印出入库单? 高手还在吗?几个棘手的问题!高分相送 如何使Panel透明呢? 关于netuseradd 关于Delphi中的WebBrowser编程的问题(WebBrowser组件)? 浅谈API HOOK技术(一) 可能大家都没见过的难题,HI。欢迎高手前来。
GetSystemTime
具体用法见MSDN
应该是这样:
NTRemote DateTime:
部分关键代码:
PTime_Of_Day_Info = ^TTime_Of_Day_Info;
TTime_Of_Day_Info = record
tod_elapsedt :Integer;
tod_msecs :Integer;
tod_hours :Integer;
tod_mins :Integer;
tod_secs :Integer;
tod_hunds :Integer;
tod_timezone :LongInt;
tod_tinterval :Integer;
tod_day :Integer;
tod_month :Integer;
tod_year :Integer;
tod_weekday :Integer;
end;function NetRemoteTOD(ServerName :PWideChar;
var buffer :pointer) :Integer; stdcall; external 'netapi32.dll';function NetApiBufferFree(buffer : Pointer) :Integer; stdcall; external 'netapi32.dll';function TNTRemoteDateTime.GetTOD(ServerName: WideString): Integer;
var Buffer :pointer;
Rek :PTime_Of_Day_Info;
ADate :TDateTime;
ATime :TDateTime;
FinalTime :TDateTime;
THours,
TMins,
TSecs,
TMSecs :Word;
TYear,
TMonth,
TDay :Word;
begin result:=NetRemoteTOD(PWideChar(ServerName),
Buffer);
if result=0 then
begin
Rek:=PTime_Of_Day_Info(Buffer);
FServerName :=ServerName;
FElapseDt :=Rek.tod_elapsedt;
FMSecs :=Rek.tod_msecs;
FHours :=Rek.tod_hours;
FMins :=Rek.tod_mins;
FSecs :=Rek.tod_secs;
FHunds :=Rek.tod_hunds;
FTInterval :=Rek.tod_tinterval; If Rek.tod_timezone <> -1 then
begin
FTimeZone:=Rek.tod_timezone div 60;
end
else
FTimeZone:=0; FDay :=Rek.tod_day;
FMonth :=Rek.tod_month;
FYear :=Rek.tod_year;
FWeekDay :=Rek.tod_weekday; ADate:=EncodeDate(FYear, FMonth, FDay);
ATime:=EnCodeTime(FHours, FMins, FSecs, FHunds); FinalTime:=StrToDateTime(DateTimeToStr(ADate) + ' ' + TimeToStr(ATime));
FinalTime:=FinalTime - (FTimeZone / 24); decodetime(FinalTime,THours, TMins,TSecs, TSecs); FHours:=Integer(THours); decodeDate(FinalTime,TYear, TMonth,TDay);
FYear:=Integer(TYear);
FMonth:=Integer(TMonth);
FDay:=Integer(TDay); end;
NetApiBufferFree(Buffer);
end;