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 года был не понедельник, а вторник
Знаю. это просто для проверки этот код использовал я
Подскажите как изменить системное время?
как создать переменную и в нее положить системное время и дату ,что-бы потом ее использовать в запросе
Доброго времяни суток . Помогите пожайлусто решить задачу . Задание следущее: Работа салона.
Системное время
Привет. Хочу сделать нечто вроде напоминалки, то есть когда наступает определенная дата и время.
Системное время
Как изменить системное время . Программа должна синхронизировать системное время по GPS, Важно —.
Системное время
Не могу понять почему возвращает неправильно часы, хотя минуты показывает верно, подскажите в чем.
Спасибо за ответ, но я уже разобрался..
____________________________________________________________ ________________________
Функция SetSystemTime.
Обрати внимание на привилегии.
Автор ответа: podval
Взято с Vingrad
Следующие несколько строк кода позволяют установить системную дату и время без использования панели управления. Дата и время устанавливаются двумя раздельными компонентами TDateTimePicker. Дата и время декодируются и передаются в API функцию.
Из значения часа вычитается 2 для установки правильного времени. (Примечание Vit: вычитается не 2 часа а разница с Гринвичем)
DelphiWorld 6.0
———————————————————————————
Следующие несколько строк кода позволяют установить системную дату и время без использования панели управления. Дата и время устанавливаются двумя раздельными компонентами TDateTimePicker. Дата и время декодируются и передаются в API функцию.
Из значения часа вычитается 2 для установки правильного времени.
скорее всего — да, подойдёт.
только не забудь про
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.
Системное время (дата)
Написать программу, которая запрашивает от пользователя ввод даты в формате ДД.ММ.ГГГГ, и не.
Delphi. Уменьшить системное время
Как уменьшить системное время на 1 час?? Например, на компьютере время 12:50. Нужно, чтобы при.
Обратный отсчет и системное время.
Здравствуйте, такой вопросик, нужно запомнить системное время, и через несколько минут выдавать.
Как можно изменить время в GetTickCount?
Как можно изменить время в GetTickCount? Или как изменить время работы в деспетчере задач?
Как изменить системное время?
Как изменить системное время?
Содержание материала
Обрати внимание на привилегии.
Автор ответа: podval
// Функция (раздел Public) SetPCSystemTime изменяет системную дату и время.
// Параметр(ы) : 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 ) ;
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());