Изменение системного времени из Delphi
Как я могу сменить системное время Windows 95 из программы, написанной на Delphi 2.0?
Вот правильное решение:
//************************************************************************* // Функция (раздел Public) SetPCSystemTime изменяет системную дату и время. // Параметр(ы) : tDati Новая дата и время // Возвращаемые значения: True - успешное завершение // False - метод несработал //************************************************************************* function SetPCSystemTime(tDati: TDateTime): Boolean; var tSetDati: TDateTime;
vDatiBias: Variant;
tTZI: TTimeZoneInformation;
tST: TSystemTime;
beginGetTimeZoneInformation(tTZI);
vDatiBias := tTZI.Bias / 1440;
tSetDati := tDati + vDatiBias;
with tST do
begin
wYear := StrToInt(FormatDateTime('yyyy', tSetDati));
wMonth := StrToInt(FormatDateTime('mm', tSetDati));
wDay := StrToInt(FormatDateTime('dd', tSetDati));
wHour := StrToInt(FormatDateTime('hh', tSetDati));
wMinute := StrToInt(FormatDateTime('nn', tSetDati));
wSecond := StrToInt(FormatDateTime('ss', tSetDati));
wMilliseconds := 0;
end;
SetPCSystemTime := SetSystemTime(tST);
end;
|
Phil добавляет:
Для изменения системного времени используется сложный спобой (через строки).
DateTimeToSystemTime(tSetDati,Tst); |
- работает быстрее и код короче [000017]