Delphi изменить время windows

Delphi изменить время windows

Следующий код ничего изменять не хочет:

procedure TForm1.Button1Click(Sender: TObject);
var
NewTD: TSYSTEMTIME;
begin
NewTD.wYear:=2000;
NewTD.wMonth:=3;
NewTD.wDay:=28;
NewTD.wDayOfWeek:=1;
NewTD.wHour:=12;
NewTD.wMinute:=12;
NewTD.wSecond:=12;
NewTD.wMilliseconds:=0;>
SetSystemTime(NewTD);
end;

В чём неправильность кода?!


Virgo_Style © ( 2005-12-08 19:24 ) [1]

afaik, нужно получить привилегию на изменение времени


Anatoly Podgoretsky © ( 2005-12-08 19:27 ) [2]

Привилегия систем, а не пользователя.


Volf_555 ( 2005-12-08 19:35 ) [3]

А следующий код работает!

procedure TForm1.Button1Click(Sender: TObject);
var
NewTD: TSYSTEMTIME;
a:Boolean;
begin
NewTD.wYear:=2005;
NewTD.wMonth:=12;
NewTD.wDay:=8;
NewTD.wDayOfWeek:=1;
NewTD.wHour:=16;
NewTD.wMinute:=23;
NewTD.wSecond:=12;
NewTD.wMilliseconds:=0;
a:=SetSystemTime(NewTD);
if a=True then
ShowMessage(«Настройки благополучно изменены») else
ShowMessage(«Что-то не то в коде»);
end;


umbra © ( 2005-12-08 19:52 ) [4]

28 марта 2000 года был не понедельник, а вторник

Вдобавок — этот код изменяет всё нормально, кроме часов. При использовании этого кода вместо 16 часов выползает 18 часов, то есть на 2 часа больше


umbra © ( 2005-12-08 19:53 ) [6]

и сегодня не понедельник, а четверг


Volf_555 ( 2005-12-08 19:54 ) [7]

umbra © (08.12.05 19:52) [4]
28 марта 2000 года был не понедельник, а вторник

Знаю. это просто для проверки этот код использовал я

Подскажите как изменить системное время?

как создать переменную и в нее положить системное время и дату ,что-бы потом ее использовать в запросе
Доброго времяни суток . Помогите пожайлусто решить задачу . Задание следущее: Работа салона.

Системное время
Привет. Хочу сделать нечто вроде напоминалки, то есть когда наступает определенная дата и время.

Читайте также:  Последняя версия navitel для windows

Системное время
Как изменить системное время . Программа должна синхронизировать системное время по GPS, Важно —.

Системное время
Не могу понять почему возвращает неправильно часы, хотя минуты показывает верно, подскажите в чем.

Спасибо за ответ, но я уже разобрался..
____________________________________________________________ ________________________
Функция SetSystemTime.

Обрати внимание на привилегии.

Автор ответа: podval

Взято с Vingrad

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

Из значения часа вычитается 2 для установки правильного времени. (Примечание Vit: вычитается не 2 часа а разница с Гринвичем)

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

Из значения часа вычитается 2 для установки правильного времени.

скорее всего — да, подойдёт.

только не забудь про

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Системное время (дата)
Написать программу, которая запрашивает от пользователя ввод даты в формате ДД.ММ.ГГГГ, и не.

Delphi. Уменьшить системное время
Как уменьшить системное время на 1 час?? Например, на компьютере время 12:50. Нужно, чтобы при.

Обратный отсчет и системное время.
Здравствуйте, такой вопросик, нужно запомнить системное время, и через несколько минут выдавать.

Как можно изменить время в GetTickCount?
Как можно изменить время в GetTickCount? Или как изменить время работы в деспетчере задач?

Как изменить системное время?

Как изменить системное время?

Содержание материала

Обрати внимание на привилегии.

Автор ответа: podval

// Функция (раздел Public) SetPCSystemTime изменяет системную дату и время.

Читайте также:  Базовые знания linux centos

// Параметр(ы) : tDati Новая дата и время

// Возвращаемые значения: True — успешное завершение

// False — метод несработал

function SetPCSystemTime(tDati: TDateTime): Boolean;

vDatiBias := tTZI.Bias / 1440 ;

tSetDati := tDati + vDatiBias;

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));

Для изменения системного времени используется сложный спобой (через строки).

— работает быстрее и код короче

Procedure settime(hour, min, sec, hundreths : byte); assembler ;

mov dl, hundreths

Procedure setdate(Year : word; Month, Day : byte); assembler ;

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

Из значения часа вычитается 2 для установки правильного времени. ( Примечание Vit: вычитается не 2 часа а разница с Гринвичем )

procedure TfmTime.btnTimeClick(Sender: TObject);

var vsys : _SYSTEMTIME;

vYear, vMonth, vDay, vHour, vMin, vSec, vMm : Word;

DelphiSite

Наиболее читаемое

Как изменить системное время?

Функция SetSystemTime.
Обрати внимание на привилегии.
Автор ответа: podval
Взято с Vingrad.ru http://forum.vingrad.ru

Для изменения системного времени используется сложный спобой (через строки).

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

procedure TfmTime. btnTimeClick ( Sender: TObject ) ;

var vsys : _SYSTEMTIME;

vYear, vMonth, vDay, vHour, vMin, vSec, vMm : Word ;

DecodeDate ( Trunc ( dtpDate. Date ) , vYear, vMonth, vDay ) ;

Читайте также:  Как изменить код активации windows

DecodeTime ( dtpTime. Time , vHour, vMin, vSec, vMm ) ;

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 ) ) ;

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

procedure TfmTime. btnTimeClick ( Sender: TObject ) ;

vYear, vMonth, vDay, vHour, vMin, vSec, vMm: Word ;

DecodeDate ( Trunc ( dtpDate. Date ) , vYear, vMonth, vDay ) ;

DecodeTime ( dtpTime. Time , vHour, vMin, vSec, vMm ) ;

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 ) ) ;

Установка системной даты

5 ответов

SetSystemTime не пробовало?

Спасобо! Самое интересное, что в хелпе этой функции НЕТ X)-
С меня пиво!:D

Я, обычно, делаю так:

function SetTime(DateTime:TDateTime): boolean;
var
st: TSystemTime;
ZoneTime: TTimeZoneInformation;
begin
GetTimeZoneInformation(ZoneTime);
DateTime:=DateTime+ZoneTime.Bias/1440;
with st do
begin
DecodeDate(DateTime, wYear, wMonth, wDay);
DecodeTime(DateTime, wHour, wMinute, wSecond, wMilliseconds);
end;
Result:=SetSystemTime(st);
end;

Еее там нет, поскольку это функция WinAPI.

Я, обычно, делаю так:

function SetTime(DateTime:TDateTime): boolean;
var
st: TSystemTime;
ZoneTime: TTimeZoneInformation;
begin
GetTimeZoneInformation(ZoneTime);
DateTime:=DateTime+ZoneTime.Bias/1440;
with st do
begin
DecodeDate(DateTime, wYear, wMonth, wDay);
DecodeTime(DateTime, wHour, wMinute, wSecond, wMilliseconds);
end;
Result:=SetSystemTime(st);
end;

Этот код работает хорошо зимой. А переход на летнее время он не учитывает и переводит на час дальше, чем требуется при передаче например: SetTime(Now());

Оцените статью