Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.11.2011, 00:37   #51
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

не понял?в чем там проблема?где и что конкретно мне исправить?
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 04.11.2011, 10:42   #52
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

речь идёт о примерно таком коде:
Код:
procedure SetSystemDateTime(ServerTOD : TIME_OF_DAY_INFO );
var
  vsys: _SYSTEMTIME;
begin
  with ServerTOD do begin
    vsys.wYear := tod_year;
    vsys.wMonth := tod_month;
    vsys.wDay := tod_day;
    vsys.wHour := ( tod_hours - 2 );
    vsys.wMinute := tod_mins;
    vsys.wSecond := tod_secs;
    vsys.wMilliseconds := tod_msecs;
    vsys.wDayOfWeek := tod_weekday;
  end;
  SetSystemTime( vsys );
end;


procedure TForm1.FormCreate(Sender: TObject);
var
  TOD: PTIME_OF_DAY_INFO;
  CurMonth, CurYear : dword;
begin
  if NetRemoteTOD('\\192.168.х.х', TOD) = 0 then begin
     CurMonth := MonthOf(Date);
     CurYear  := YearOf(Date);
     (*    t:= copy(Format('%d.%d.%d ',[TOD^.tod_day,TOD^.tod_month,TOD^.tod_year]),3,10);
         ShowMessage(t); *)
      if  (CurMonth<>TOD^.tod_month)
                or (CurYear<>TOD^.tod_year) then begin
                  {установим дату и время взятыми  с сервера}
                  {можно вызвать       WinExec('net time \\192.168.х.х /set /yes',SW_HIDE);}
                  {а можно и так: }
                  SetSystemDateTime(TOD^);
                end;
  end;
  NetApiBufferFree(TOD);
end;


p.s. установку дату и времени я взял ТУТ
если не будет работать и не сможете поправить - можете вернуть свой WinExec('net time......

Последний раз редактировалось Serge_Bliznykov; 04.11.2011 в 10:47.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.11.2011, 09:43   #53
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

Код:
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)

    procedure FormCreate(Sender: TObject);
  end;
 
  PTIME_OF_DAY_INFO = ^TIME_OF_DAY_INFO; 
  TIME_OF_DAY_INFO = record
    tod_elapsedt : DWORD;
    tod_msecs    : DWORD;
    tod_hours    : DWORD;
    tod_mins     : DWORD;
    tod_secs     : DWORD;
    tod_hunds    : DWORD;
    tod_timezone : Longint;
    tod_tinterval: DWORD;
    tod_day      : DWORD;
    tod_month    : DWORD;
    tod_year     : DWORD;
    tod_weekday  : DWORD;
  end;
 
  function NetRemoteTOD(Server: PWChar; var pBuffer: PTIME_OF_DAY_INFO): DWORD;
    stdcall; external 'NETAPI32.DLL';
  function NetApiBufferFree(pBuffer: Pointer): DWORD;
    stdcall; external 'NETAPI32.DLL';
 
var
  Form1: TForm1;
  t,data:string;
implementation
 
{$R *.dfm}

 procedure SetSystemDateTime(ServerTOD : TIME_OF_DAY_INFO );
var
  vsys: _SYSTEMTIME;
begin
  with ServerTOD do begin
    vsys.wYear := tod_year;
    vsys.wMonth := tod_month;
    vsys.wDay := tod_day;
    vsys.wHour := ( tod_hours - 2 );
    vsys.wMinute := tod_mins;
    vsys.wSecond := tod_secs;
    vsys.wMilliseconds := tod_msecs;
    vsys.wDayOfWeek := tod_weekday;
  end;
  SetSystemTime( vsys );
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  TOD: PTIME_OF_DAY_INFO;
  CurMonth, CurYear : dword;
begin
  if NetRemoteTOD('\\192.168.х.х', TOD) = 0 then begin
     CurMonth := Monthof(Date);
     CurYear  := YearOf(Date);
     (*    t:= copy(Format('%d.%d.%d ',[TOD^.tod_day,TOD^.tod_month,TOD^.tod_year]),3,10);
         ShowMessage(t); *)
      if  (CurMonth<>TOD^.tod_month)
                or (CurYear<>TOD^.tod_year) then begin
                  {установим дату и время взятыми  с сервера}
                  {можно вызвать       WinExec('net time \\192.168.х.х /set /yes',SW_HIDE);}
                  {а можно и так: }
                  SetSystemDateTime(TOD^);
                end;
  end;
  NetApiBufferFree(TOD);
end;
end.
блин вот так я подставил все, но при компиляции ошибки показывает, подчеркивает слова Monthof, YearOf
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны

Последний раз редактировалось betirsolt; 08.11.2011 в 09:45.
betirsolt вне форума Ответить с цитированием
Старый 08.11.2011, 09:49   #54
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

добавить в uses модуль DateUtils.

PS: это можно было самму выяснить в хелпе.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 08.11.2011, 12:23   #55
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

блин а как я мог узнать там?у меня там все на инглиш,меня так бесит что я не разбираюсь во всем этом
прога вроде работает,всем спасибо,наверное пора закругляться
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны

Последний раз редактировалось mihali4; 08.11.2011 в 12:44.
betirsolt вне форума Ответить с цитированием
Старый 08.11.2011, 12:32   #56
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
блин а как я мог узнать там?
поставить курсор ввода на имя функции, нажать F1, и там вначале же пишется модуль в котром находится эта функция(кстати, я именно так и сделал)
ну или же гугл.

PS: только не обижайтесь, просто это полезный навык.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 08.11.2011, 15:30   #57
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

Цитата:
Пепел Феникса
ок,спасибо,какие могут быть обиды, меня учат и я рад
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 11.11.2011, 15:08   #58
Sm1Le
Форумчанин
 
Аватар для Sm1Le
 
Регистрация: 31.10.2008
Сообщений: 500
По умолчанию

синхронизация времени с сервером + таймер синхронизации = 1 секунда ^_^
Skype : UASm1Le.
Sm1Le вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно запретить программе сбор информации о компе(всевозможные идентификаторы компьютара и ОС), чтобы не дать отослать е riotel Безопасность, Шифрование 10 02.11.2011 14:14
Не хочет изменять в БД cargo29 PHP 14 07.10.2011 13:54
запретить модераторам моего сайта изменять себе репутацию hon Свободное общение 9 30.09.2011 22:11
Можно ли запретить автопреобразования из числа в дату и обратно? m_v_v Microsoft Office Excel 1 01.06.2010 11:22
Как работать с большим числом? phobos Общие вопросы C/C++ 2 21.04.2009 07:05