Resumen Hora del Servidor

Mensaje enviado por Sergio Daniel Jaime Peña <serjaime78@hotmail.com> el 28/12/2002


Buenas Tardes espero que te sea de ayuda:

Extrae la fecha y la hora de una máquina local o remota

A través de este código conoceremos la fecha y la hora de nuestra máquina local o de cualquier máquina de nuestra red de una forma remota.

Option Explicit

'Estructuras API
Type TIME_OF_DAY_INFO
    tod_elapsed 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

'LLamadas NETAPI
Public Declare Function NetRemoteTOD Lib "netapi32.dll" (yServer As Any, pBuffer As Long) As Long
Private Declare Function NetApiBufferFree Lib "netapi32.dll" (ByVal pBuffer As Long) As Long
'LLamadas API al Kernel
Private Declare Sub CopyMem Lib "kernel32.dll" Alias "RtlMoveMemory" (pTo As Any, uFrom As Any, ByVal lSize As Long)
'Devuelve la fecha y la hora de una máquina específica de la red.
Public Function GetRemoteTime(ServerName As String) As Date
    Dim lpBuffer As Long
    Dim t_struct As TIME_OF_DAY_INFO
    Dim ret As Long
    Dim bServer() As Byte
    If Trim(ServerName) = "" Then
        'Máquina Local
        ret = NetRemoteTOD(vbNullString, lpBuffer)
    Else
        If InStr(ServerName, "\\") = 1 Then
            bServer = ServerName & vbNullChar
        Else
            bServer = "\\" & ServerName & vbNullChar
        End If
        ret = NetRemoteTOD(bServer(0), lpBuffer)
    End If
    CopyMem t_struct, ByVal lpBuffer, Len(t_struct)
    If lpBuffer Then
        Call NetApiBufferFree(lpBuffer)
    End If
    GetRemoteTime = DateSerial(t_struct.tod_year, t_struct.tod_month, _
    t_struct.tod_day) + TimeSerial(t_struct.tod_hours, t_struct.tod_mins - _
    t_struct.tod_timezone, t_struct.tod_secs)
End Function

'Coloca dos botones en el formulario

'Extrae la fecha y la hora de la máquina Local
Private Sub Command1_Click()
    MsgBox GetRemoteTime("")
End Sub

'Extrae la fecha y la hora de una máquina remota.
Private Sub Command2_Click()
    MsgBox GetRemoteTime("\\MYWORKSTATION")
End Sub


Salu2 Jaime



Sergio Daniel Jaime Peña
Algeciras (Cádiz - España)
serjaime@telefonica.net

>From: "Adalberto"
>Reply-To: visualbasic-esp@yahoogroups.com
>To:
>Subject: Re: (VB-ESP) Hora del Servidor
>Date: Sat, 28 Dec 2002 10:15:08 +0100
>
>MessageBueno, ante todo, gracias a los que contestaron, pero como sigo sin hacer funcionar la funcion GetDate(), paso a explicar lo que pretendo hacer con ella:
>
>Estoy realizando una aplicacion que reside en una maquina que hara la funcion de servidor, tanto para el programa en VB como para la base de datos, y en ella pretendo:
>
>-Comparar un campo fecha de la base de datos con la fecha actual del servidor, evitando asi la picardia de que cambiando la hora de la maquina cliente, el resultado no sea el esperado
>
>-"Ofrecer" al usuario en un TextBox.Txt la fecha del servidor y la hora del mismo para que no tenga que escribirla, y si la valida (si es correcta, o si modifica esa hora ofrecida) este TextBox.Txt sera guardado en un campo de la base de datos.
>
>-Grabar directamente en la base de datos, aparte del dia y la hora en la que el operador de la aplicacion "dice" que ha ocurrido, el dia y la hora en que ocurre realmente (temas legales, parecido al funcionamiento de un libro de actas de reuniones)
>
>Como se puede observar, en unos casos son para ayudar (ahi me daria practicamente igual la hora del servidor, que la de la maquina), y en la mayoria, son para evitar la picardia del cambio del dia y hora en la maquina cliente.
>
>La aplicacion funciona en que: abre la base de datos, presenta en pantalla los datos, y cierra la base de datos, ante cualquier "movimiento" del puntero, vuelve a abrir la base, refresca los datos, y la vuelve a cerrar.
>
>Espero haberme explicado un poco mejor.
>
>Gracias de nuevo, y FAN (Feliz Año Nuevo)
>
>Adalberto



Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com