Ir para conteúdo
Fórum Script Brasil
  • 0

Pega Data De Um Servidor


Guest paulo césar de oliveira

Pergunta

3 respostass a esta questão

Posts Recomendados

  • 0

usando API, conheco esse jeito. sem precisar alterar o horario do pc q estiver sendo usado:

'''ISSO VAI NAS DECLARACOES DO MODULE OU DO FORMULARIO QUE TERA ESSA FUNCAO

Option Explicit
Private Declare Function NetRemoteTOD Lib "NETAPI32.DLL" (ByVal server As String, buffer As Any) As Long
Private Declare Function NetApiBufferFree Lib "NETAPI32.DLL" (ByVal buffer As Long) As Long
Private Declare Sub CopyMemory Lib "KERNEL32" Alias "RtlMoveMemory" (hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)
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

''''ESSA É A FUNCAO
''''PRA CHAMAR É SÓ POR strDataHora = BuscarDataHora("[IP OU NOME DO SERVIDOR]")
'''' A Data vira em string data e hora no format abaixo. depois você separa e converte em data
' Função para retornar a Data/Hora de um computador na rede
' RETORNO:
' string no formato dd/mm/yyyy-hh:mm:ss
' PARAMETROS:
' sComputador: Nome de um computador da rede. Ex: \\SERVIDOR1
'
Private Function BuscarDataHora(sComputador As String) As String
Dim sRetorno As String
Dim todTime As TIME_OF_DAY
Dim ptrTime As Long
Dim lRetorno As Long
Dim sServidor As String
Dim dRemoto As Date
On Error GoTo ERRO
sRetorno = ""
Screen.MousePointer = vbHourglass
sServidor = StrConv(sComputador, vbUnicode)
lRetorno = NetRemoteTOD(sServidor, ptrTime)
If lRetorno = 0 Then
CopyMemory todTime, ByVal ptrTime, Len(todTime) 'COPIA O PONTEIRO RETORNADO PARA A ESTRUTURA TIME_OF_DAY
dRemoto = DateSerial(70, 1, 1) + (todTime.t_elapsedt / 60 / 60 / 24) 'CONVERTE O TEMPO DECORRIDO DESDE 1/Jan/70 PARA UMA DATA
dRemoto = dRemoto - (todTime.t_timezone / 60 / 24) 'AJUSTAR PARA DIFERENÇAS DO TimeZone
sRetorno = Format(dRemoto, "dd/mm/yyyy") & "-" & Format(dRemoto, "hh:mm:ss")
NetApiBufferFree (ptrTime) 'LIBERA O PONTEIRO DA MEMÓRIA
Else
'Erro 53: cannot find server
MsgBox "Não pode encontrar o servidor." & vbCrLf & vbCrLf & sServidor, vbExclamation, "Atenção"
End If
GoTo FIM
ERRO:
MsgBox Err.Number & vbCrLf & Err.De ion, vbCritical, "Erro"
FIM:
Screen.MousePointer = vbDefault
BuscarDataHora = sRetorno
Exit Function
End Function

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,6k
×
×
  • Criar Novo...