- Регистрация
- 9 Май 2015
- Сообщения
- 1,552
- Баллы
- 155
Здравствуй, Дорогой читатель. Недавно один из пользователь задал мне вопрос:
Скажите, а есть код, который обеспечит решение моей задачи, а примеру, на компе сбита дата именно дата, по нажатию на кнопку должна происходить синхронизация даты из интернета. Помогите, очень надо, найти не могу.
C удовольствием разберу этот вопрос. Тем более когда-то давно я уже решал подобную задачу. Не судите строго код старый, возможно не самый оптимальной, но работает стабильно.
Задачу установки даты из интернета на компьютер я условно разделю на 3 подзадачи:
Получить текущую дату из интернета в Delphi.
Дату можно получить разными методами, например со страницы яндекса. Этот способ не очень удобный так как вместе с датой нам придется загружать много лишней информации, которую нам придется отделять. В своей программе я пошел другим путем. Я написал не большой php скрипт, который возвращает текущую дату и время в следующем формате «!25.05.2014№ %01:23:52?». Чтобы получить такой ответ нужно отправить get запрос следующего содержания - . В это реализуется следующим образом:
Преобразовать строку в нужный формат.
Следующее, что нужно сделать – из полученной строки получить две переменные. Первая будет содержать дату, а вторая время. Делается это следующим образом:
Последнее, что осталось сделать – установить дату и время на компьютере с помощью команд Delphi. Об этом я уже рассказывал, но повторение как извесно – это хорошо…
Вот и все, мы получили из интернета дату и время и установили их на компьютер.
Скажите, а есть код, который обеспечит решение моей задачи, а примеру, на компе сбита дата именно дата, по нажатию на кнопку должна происходить синхронизация даты из интернета. Помогите, очень надо, найти не могу.
C удовольствием разберу этот вопрос. Тем более когда-то давно я уже решал подобную задачу. Не судите строго код старый, возможно не самый оптимальной, но работает стабильно.
Задачу установки даты из интернета на компьютер я условно разделю на 3 подзадачи:
- Получить строку из интернета, содержащую дату
- Преобразовать полученную строку в нужный формат
- Установить дату на компьютер
Получить текущую дату из интернета в Delphi.
Дату можно получить разными методами, например со страницы яндекса. Этот способ не очень удобный так как вместе с датой нам придется загружать много лишней информации, которую нам придется отделять. В своей программе я пошел другим путем. Я написал не большой php скрипт, который возвращает текущую дату и время в следующем формате «!25.05.2014№ %01:23:52?». Чтобы получить такой ответ нужно отправить get запрос следующего содержания - . В это реализуется следующим образом:
Код:
buf := IdHTTP1.Get(http://fegorsk.ru/script/time.php?zapros=784');
Преобразовать строку в нужный формат.
Следующее, что нужно сделать – из полученной строки получить две переменные. Первая будет содержать дату, а вторая время. Делается это следующим образом:
Код:
Mdate := Copy(buf, Pos('!', buf) + 1, 10);
Mtime := Copy(buf, Pos('%', buf) + 1, 8);
Последнее, что осталось сделать – установить дату и время на компьютере с помощью команд Delphi. Об этом я уже рассказывал, но повторение как извесно – это хорошо…
Код:
ShellExecute(0, nil, pchar('cmd.exe'), pchar('/c time ' + Mtime), nil, SW_HIDE); // для изменения времени и
ShellExecute(0, nil, pchar('cmd.exe'), pchar('/c date ' + Mdate), nil, SW_HIDE); // для изменения даты
Вот и все, мы получили из интернета дату и время и установили их на компьютер.