procedure TForm1.Button1Click(Sender: TObject);
var st:TSystemTime;
begin
DateTimeToSystemTime(datetimepicker1.DateTime-1/3,st);
SetSystemTime(st);
end;
buf:array[0..255] of char;
sString:string;
dResult:DWORD;
begin
With TQuery.Create(frmSetLogin) do
begin
DataBaseName:=frmMenu.dbHimis.Databasename;
SQL.Add('Select GetDate() As Now');
Open;
if Abs((FieldByname('Now').AsDateTime-Now))>1/1440.0 then
begin
if Application.MessageBox('工作站时钟与服务器不一致,要矫正吗?','时钟不一致',MB_OKCANCEL+MB_ICONQUESTION)=ID_OK then
begin
GetEnvironmentVariable('Comspec',buf,sizeof(buf));
SQL.Clear;
SQL.Add('Select Convert(char(20),GetDate(),20) As Now');
Open;
sString:='/c Date '+Copy(FieldByName('Now').AsString,1,10);
dResult:=ShellExecute(0,'open',buf,Pchar(sString),nil,SW_Hide);
sString:='/c Time '+Copy(FieldByName('Now').AsString,12,8);
dResult:=ShellExecute(0,'open',buf,Pchar(sString),nil,SW_Hide);
if dResult<31 then
Showmessage('设置时间错,请检查合法权限');
end;
end;
end;
end;
_SYStemTIME结构:
typedef struct _SYSTEMTIME {
WORD wYear; //年
WORD wMonth; //月
WORD wDayOfWeek; //星期
WORD wDay; //日
WORD wHour; //小时
WORD wMinute; //分
WORD wSecond; //秒
WORD wMilliseconds;//毫秒
} SYSTEMTIME;