Windows NT:指定したサーバーの時間を取得する方法 |
対象バージョン : 97, 2000, 2002, 2003
最終更新日 : 2016/09/18 (オリジナル作成日 :
1998/12/21)
概 要
Windows NT のクライアントから、指定したサーバーの日付・時間を取得する方法です。
解 説
宣言
Declare Function NetRemoteTOD Lib "Netapi32.dll" _ (UncServerName As Any, BufferPtr As Long) As Long Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _ (hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long) Type TIME_OF_DAY_INFO tod_elapsedt As Long tod_msecs As Long tod_hours As Long tod_mins As Long tod_secs As Long tod_hunds As Long tod_timezone As Long tod_tinterval As Long tod_day As Long tod_month As Long tod_year As Long tod_weekday As Long End Type
プロシージャ
Public Function GetServerDateTime(argServerName) As Date Dim abytServerName() As Byte Dim ptrTOD As Long Dim stuTOD As TIME_OF_DAY_INFO Dim ret As Long abytServerName = argServerName & vbNullChar ret = NetRemoteTOD(abytServerName(0), ptrTOD) If ret <> 0 Then MsgBox "Server Not Found" Exit Function End If CopyMemory stuTOD, ptrTOD, Len(stuTOD) GetServerDateTime = DateSerial(stuTOD.tod_year, stuTOD.tod_month, stuTOD.tod_day) + _ TimeSerial(stuTOD.tod_hours, stuTOD.tod_mins - stuTOD.tod_timezone, stuTOD.tod_secs) End Function
呼び出し例
Dim dtSvDateTime As Date dtSvDateTime = GetServerDateTime("サーバー名")
補 足
改訂履歴