[DllImport("Netapi32.dll", CharSet=CharSet.Unicode)]
static extern int NetRemoteTOD(string UncServerName, ref IntPtr BufferPtr);
<DllImport("netapi32", CharSet:=CharSet.Unicode)> Function NetRemoteTOD( _
ByVal UncServerName As String, ByRef BufferPtr As IntPtr) As Integer
End Function!!!!User-Defined Types:
None.
[2004-05-20 Nicholas Paldino]
Make sure to call NetApiBufferFree on the IntPtr returned in the Buffer parameter.
Please add some!
'get remote computer system time
Public Function GetRemoteComputerSystemTime(ByVal CName As String, _
ByRef TimeZone As Integer) As DateTime
'The pointer.
Dim pintBuffer As IntPtr = IntPtr.Zero
'Set pointer to the time of day info structure.
Dim pintError As Integer = NetRemoteTOD("\\" + CName, pintBuffer)
' Get the structure.
Dim pobjInfo As TIME_OF_DAY_INFO = _
CType(Marshal.PtrToStructure(pintBuffer, _
GetType(TIME_OF_DAY_INFO)), TIME_OF_DAY_INFO)
' Free the buffer.
NetApiBufferFree(pintBuffer)
'set date
Dim d As New DateTime( _
Convert.ToInt32(pobjInfo.tod_year), Convert.ToInt32(pobjInfo.tod_month), _
Convert.ToInt32(pobjInfo.tod_day), Convert.ToInt32(pobjInfo.tod_hours), _
Convert.ToInt32(pobjInfo.tod_mins), Convert.ToInt32(pobjInfo.tod_secs))
'correct time zone, the function NetRemoteTOD returns a GMT time
TimeZone = pobjInfo.tod_timezone
d = d.AddMinutes(-pobjInfo.tod_timezone)
Return d 'return local time
End Function
Do you know one? Please contribute it!