15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Как установить системную дату и время программно

Следующие несколько строк кода позволяют установить системную дату и время без использования панели управления. Дата и время устанавливаются двумя раздельными компонентами TDateTimePicker. Дата и время декодируются и передаются в API функцию.
Из значения часа вычитается 2 для установки правильного времени.


procedure TfmTime.btnTimeClick(Sender: TObject);
var vsys : _SYSTEMTIME;
    vYear, vMonth, vDay, vHour, vMin, vSec, vMm : Word;
begin
   DecodeDate( Trunc(dtpDate.Date), vYear, vMonth, vDay );
   DecodeTime( dtpTime.Time, vHour, vMin, vSec, vMm );
   vMm := 0;
   vsys.wYear := vYear;
   vsys.wMonth := vMonth;
   vsys.wDay := vDay;
   vsys.wHour := ( vHour - 2 );
   vsys.wMinute := vMin;
   vsys.wSecond := vSec;
   vsys.wMilliseconds := vMm;
   vsys.wDayOfWeek := DayOfWeek( Trunc(dtpDate.Date) );
   SetSystemTime( vsys );
end;