Visual Basic.NET - como puedo obtener la hora del servidor

 
Vista:

como puedo obtener la hora del servidor

Publicado por Alvaro (1 intervención) el 04/07/2006 01:57:35
Tengo una aplicacion desarrollada en VB.NET, en la que en mi servidor tengo almacenada una base de datos Access, las maquinas cliente se conectan a dicha base de datos solamente para consultar.
Lo que necesito es, saber en la aplicacion cliente la hora actual del servidor .
A mi no me sirve la hora de las computadoras clientes ya que habitualmente no estan actualizadas, y por eso me quiero fiar mejor de una hora fija para todas las pc clientes.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:como puedo obtener la hora del servidor

Publicado por Javi RM (12 intervenciones) el 04/07/2006 13:27:01
Debes utilizar la API de Windows.
Prueba con esto:

' Referencia
Imports System.Runtime.InteropServices

' Llamadas a la API
Private Declare Unicode Function NetRemoteTOD Lib "netapi32" ( _
<MarshalAs(UnmanagedType.LPWStr)> ByVal ServerName As String, _
ByRef BufferPtr As IntPtr) As Integer
Private Declare Function NetApiBufferFree Lib _
"netapi32" (ByVal Buffer As IntPtr) As Integer

' Estructura necesaria
Structure TIME_OF_DAY_INFO
Dim tod_elapsedt As Integer
Dim tod_msecs As Integer
Dim tod_hours As Integer
Dim tod_mins As Integer
Dim tod_secs As Integer
Dim tod_hunds As Integer
Dim tod_timezone As Integer
Dim tod_tinterval As Integer
Dim tod_day As Integer
Dim tod_month As Integer
Dim tod_year As Integer
Dim tod_weekday As Integer
End Structure

' Copia esto en el Load del formulario para probar
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
Dim iRet As Integer
Dim ptodi As IntPtr
Dim todi As TIME_OF_DAY_INFO
Dim dDate As Date
Dim Servidor As String

' Nombre del servidor acabado en terminación nula
Servidor = "\\NombreDeTuServidor" & vbNullChar

' Recuperamos los datos del servidor
iRet = NetRemoteTOD(Servidor, ptodi)

If iRet = 0 Then
todi = CType(Marshal.PtrToStructure(ptodi, GetType(TIME_OF_DAY_INFO)), TIME_OF_DAY_INFO)
NetApiBufferFree(ptodi)
dDate = DateSerial(todi.tod_year, todi.tod_month, todi.tod_day) + " " + _
TimeSerial(todi.tod_hours, todi.tod_mins - todi.tod_timezone, todi.tod_secs)
MsgBox("La fecha del servidor es " + dDate)
Else
MsgBox("Error recuperando la fecha del servidor")
End If
Catch
MsgBox("Error de aplicación")
End Try
End Sub

Un saludo. ; )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:como puedo obtener la hora del servidor

Publicado por Alvaro (3 intervenciones) el 04/07/2006 19:48:23
Gracias por la respuesta si me sirvio, muy agradecido
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como puedo obtener la hora del servidor

Publicado por DerSAn (1 intervención) el 17/07/2006 11:11:17
pos ami no me sale la declaracion de la API
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

gracias si funciona!! pero....

Publicado por Luis (1 intervención) el 29/06/2013 00:16:49
Hola una pregunta, sabes si al hacer el llamado de la hora, queda algun registro en el servidor(log), del llamado??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar