JulianDavies
asked on
Getting the server time
Hi everyone,
I'm working on a project where I need to get the current date/time from an NT server rather than using the local PC system clock (on Windows 95 PC's). I've seen loads of code for doing the same thing from an NT workstation to an NT server, using NETAPI32.dll but this does not work for Win 95.
Any help gratefully received !
Jules
I'm working on a project where I need to get the current date/time from an NT server rather than using the local PC system clock (on Windows 95 PC's). I've seen loads of code for doing the same thing from an NT workstation to an NT server, using NETAPI32.dll but this does not work for Win 95.
Any help gratefully received !
Jules
Hi! I don't know if this is applicable, but here's the code:
Download...
http://www.vb-helper.com/Howto/wintime.zip
Description: See how long Windows has been running (2K)
That's it!
glass cookie : )
Download...
http://www.vb-helper.com/Howto/wintime.zip
Description: See how long Windows has been running (2K)
That's it!
glass cookie : )
the above I gave you is the only way i know to do this, of course it doesn't work in win 95 which really doesn't help you. Have you tried installing the netapi.dll on a win 95 machine? It probably won't work but is worth a try.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Nice piece of lateral thinking !!! Thanks Ark and thankyou to everyone else who added comments.
Jules
Jules
Thanks for points, glad I could help you
'*************************
'Windows API/Global Declarations for :Ge
' t Windows NT Server Time
'*************************
Private Type TIME_OF_DAY
t_elapsedt As Long
t_msecs As Long
t_hours As Long
t_mins As Long
t_secs As Long
t_hunds As Long
t_timezone As Long
t_tinterval As Long
t_day As Long
t_month As Long
t_year As Long
t_weekday As Long
End Type
Private Declare Function NetRemoteTOD Lib "netapi32.dll" (ByVal server As String, buffer As Any) As Long
Private Declare Sub CopyMem Lib "kernel32" Alias "RtlMoveMemory" (pTo As Any, uFrom As Any, ByVal lSize As Long)
Private Declare Function NetApiBufferFree Lib "netapi32.dll" (ByVal Ptr As Long) As Long
'*************************
' Name: Get Windows NT Server Time
' Description:Returns the time of day fr
' om a Windows NT workstation or server. A
' ccounts for time zones. Requires Windows
' NT.
' By: Matthew Ruffell
'
' Inputs:ServerName [string] = name of t
' arget server.
'
' Returns:Return the time of day.
'
' Assumes:Requires Windows NT.
'
' Side Effects:Noen.
'
'This code is copyrighted and has' limited warranties.Please see http://w
' ww.Planet-Source-Code.com/
' Id.3792/lngWId.1/qx/vb/scr
' htm'for details.'*****************
Public Function Get_ServerTime(ByVal strServerName As String) As String
Dim lngBuffer As Long
Dim strServer As String
Dim lngNet32ApiReturnCode As Long
Dim days As Date
Dim TOD As TIME_OF_DAY
On Error Resume Next
'// Get server time
strServer = StrConv(strServerName, vbUnicode) '// Convert the server name To unicode
lngNet32ApiReturnCode = NetRemoteTOD(strServer, lngBuffer)
If lngNet32ApiReturnCode = 0 Then
CopyMem TOD, ByVal lngBuffer, Len(TOD)
days = DateSerial(70, 1, 1) + (TOD.t_elapsedt / 60 / 60 / 24) '// Convert the elapsed time since 1/1/70 to a date
days = days - (TOD.t_timezone / 60 / 24) '// Adjust For TimeZone differences
Get_ServerTime = days
End If
'// Free pointers from memory
Call NetApiBufferFree(lngBuffer
End Function