Windows - alterar a data do sistema

Top  Previous  Next

var

   SystemTime: TSystemTime;

begin

   SystemTime.wYear  := ANO;

   SystemTime.wMonth := MES;

   SystemTime.wDay   := DIA;

   SystemTime.wHour  := HORA;

   SystemTime.wMinute:= MINUTO;

   SystemTime.wSecond:= SEGUNDO;

   SystemTime.wDayOfWeek   := DIA_DA_SEMANA;

   SystemTime.wMilliseconds:= MILISEGUNDOS;

   SetLocalTime(SystemTime);

End;

 

------------------------------------------------------------------------

 

procedure AcertaDataHoraWindows(const Data: TDateTime; Hora: TDateTime = 0);

var

  DataHora: TSystemTime;

  Ano, Mes, Dia, H, M, S, Mil: word;

begin

  DecodeDate(Data, Ano, Mes, Dia);

  DecodeTime(Hora, H, M, S, Mil);

  with DataHora do

  begin

    wYear         := Ano;

    wMonth        := Mes;

    wDay          := Dia;

    wHour         := H;

    wMinute       := M;

    wSecond       := S;

    wMilliseconds := Mil;

  end;

  SetLocalTime(DataHora);

end;

 

// Exemplo de uso:

procedure TForm1.Button1Click(Sender: TObject);

begin

  AcertaDataHoraWindows( StrToDate('10/02/2001'), StrToTime('14:22:25') );

end;