![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Системное время на удаленной машине? [D7, Win2k]
Kniaz © (2004-10-27 08:56:00)Подскажите пожалуста, можно ли получить системное время удалённой машины?
Rouse_ (2004-10-27 20:38:00) [1]Ну и как всегда (постоянно я их забываю указывать :) структуры и типы:
const
netapi32lib = 'NETAPI32.DLL';
type
NET_API_STATUS = DWORD;
PTimeOfDayInfo = ^TTimeOfDayInfo;
_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;
TTimeOfDayInfo = _TIME_OF_DAY_INFO;
function NetApiBufferFree(Buffer: Pointer): NET_API_STATUS; stdcall;
external netapi32lib;
function NetRemoteTOD(UncServerName: LPCWSTR;
BufferPtr: PTimeOfDayInfo): NET_API_STATUS; stdcall; external netapi32lib;
Rouse_ (2004-10-27 20:33:00) [2]
procedure TForm1.GetTODInfo(const RemoteName: String);
var
BufferPtr: PTimeOfDayInfo;
NameNT: PWChar;
CurTime: TDateTime;
begin
NameNT := StringToOleStr(RemoteName);
if NetRemoteTOD(NameNT, @BufferPtr) = NERR_Success then
try
CurTime := StrToDateTime(Format('%d.%d.%d %d:%d:%d', [
BufferPtr^.tod_day,
BufferPtr^.tod_month,
BufferPtr^.tod_year,
BufferPtr^.tod_hours,
BufferPtr^.tod_mins,
BufferPtr^.tod_secs])) +
// Рассчет по гринвичу
(0.04167 * (BufferPtr^.tod_timezone div 60) * -1);
// Текущее время на удаленной машине
lblTime.Caption := DateTimeToStr(CurTime);
// Временная зона
lblTimeZone.Caption := Format('%d минут от гринвича',
[BufferPtr^.tod_timezone]);
// Время прошедшее с момента запускак системы...
lblTimeBoot.Caption := TimeToStr(BufferPtr^.tod_msecs / 86400000);
finally
NetApiBufferFree(BufferPtr);
end
else
Log(SysErrorMessage(GetLastError));
end;
User_Name (2004-10-27 18:50:00) [3]А есть еще NET TIME )
Дмитрий Ботвин (2004-10-27 09:59:00) [4]Через WMI класс Win32_OperatingSystem и смотри параметр
LocalDateTime там всё и дата и время.