Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как получить показания времени на удаленной машине по сети?


novill ©   (2007-11-21 10:43:00) 

Если это важно, удаленная машина - сервер домена.


novill   (2007-11-21 11:22:00) [1]

> [1] Правильный_Вася   (21.11.07 10:48)
Надо просто, чтобы время используемое программой не зависело от локального.

> [3] Некто ©   (21.11.07 10:48)
Вам на форум моралистов надо :)

> [4] Rouse_ ©   (21.11.07 10:54)

Большое спасибо. Вы очень помогли.


Rouse_   (2007-11-21 10:54:00) [2]

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(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;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
 TOD: PTIME_OF_DAY_INFO;
begin
 if NetRemoteTOD('\\192.168.2.115', TOD) = 0 then
 try
   with TOD^ do
     ShowMessage(Format('Data %d %d %d Time %d:%d:%d',
       [tod_day, tod_month, tod_year, tod_hours - (tod_timezone div 60),
         tod_mins, tod_secs]));
 finally
   NetApiBufferFree(TOD);
 end
 else
   RaiseLastOSError;
end;

end.


Правильный_Вася   (2007-11-21 10:48:00) [3]

назначить егона лок. машине сервером времени?


Рамиль   (2007-11-21 10:48:00) [4]

net time \\ServerName


Некто   (2007-11-21 10:48:00) [5]

Специально полез в гугль поискать что за зверь такой "сервер домена". Ничего вразумительного не нашёл.

ЗЫ: Правильно поставленный вопрос - 90% ответа.


Наверх

Титульная страница Поиск, карта сайта Написать письмо